[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Gnash-commit] gnash ChangeLog backend/render_handler.h backen...
From: |
Bastiaan Jacques |
Subject: |
[Gnash-commit] gnash ChangeLog backend/render_handler.h backen... |
Date: |
Thu, 01 Nov 2007 09:35:47 +0000 |
CVSROOT: /sources/gnash
Module name: gnash
Changes by: Bastiaan Jacques <bjacques> 07/11/01 09:35:47
Modified files:
. : ChangeLog
backend : render_handler.h render_handler_cairo.cpp
render_handler_ogl.cpp
Log message:
* backend/render_handler.h: Document that renderers should
ignore subshapes in glyphs, as demonstrated by Agg and
evidenced in text-test.swf.
* backend/render_handler_{cairo,ogl}.cpp: draw_glyph: call
draw_subshape directly with all paths, since subshapes should
be ignored.
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/gnash/ChangeLog?cvsroot=gnash&r1=1.4752&r2=1.4753
http://cvs.savannah.gnu.org/viewcvs/gnash/backend/render_handler.h?cvsroot=gnash&r1=1.47&r2=1.48
http://cvs.savannah.gnu.org/viewcvs/gnash/backend/render_handler_cairo.cpp?cvsroot=gnash&r1=1.27&r2=1.28
http://cvs.savannah.gnu.org/viewcvs/gnash/backend/render_handler_ogl.cpp?cvsroot=gnash&r1=1.84&r2=1.85
Patches:
Index: ChangeLog
===================================================================
RCS file: /sources/gnash/gnash/ChangeLog,v
retrieving revision 1.4752
retrieving revision 1.4753
diff -u -b -r1.4752 -r1.4753
--- ChangeLog 1 Nov 2007 08:04:08 -0000 1.4752
+++ ChangeLog 1 Nov 2007 09:35:45 -0000 1.4753
@@ -1,3 +1,12 @@
+2007-11-01 Bastiaan Jacques <address@hidden>
+
+ * backend/render_handler.h: Document that renderers should
+ ignore subshapes in glyphs, as demonstrated by Agg and
+ evidenced in text-test.swf.
+ * backend/render_handler_{cairo,ogl}.cpp: draw_glyph: call
+ draw_subshape directly with all paths, since subshapes should
+ be ignored.
+
2007-10-31 Bastiaan Jacques <address@hidden>
* backend/render_handler_ogl.h: New header file; the beginnings
Index: backend/render_handler.h
===================================================================
RCS file: /sources/gnash/gnash/backend/render_handler.h,v
retrieving revision 1.47
retrieving revision 1.48
diff -u -b -r1.47 -r1.48
--- backend/render_handler.h 30 Oct 2007 18:55:40 -0000 1.47
+++ backend/render_handler.h 1 Nov 2007 09:35:46 -0000 1.48
@@ -18,7 +18,7 @@
//
//
-/* $Id: render_handler.h,v 1.47 2007/10/30 18:55:40 strk Exp $ */
+/* $Id: render_handler.h,v 1.48 2007/11/01 09:35:46 bjacques Exp $ */
#ifndef RENDER_HANDLER_H
#define RENDER_HANDLER_H
@@ -497,6 +497,8 @@
/// Glyphs are defined just like shape characters with the difference that
/// they do not have any fill or line styles.
/// Instead, the shape must be drawn using the given color (solid fill).
+ /// Please note that although the glyph paths may indicate subshapes,
+ /// the renderer is to ignore that information.
///
/// @param def
///
Index: backend/render_handler_cairo.cpp
===================================================================
RCS file: /sources/gnash/gnash/backend/render_handler_cairo.cpp,v
retrieving revision 1.27
retrieving revision 1.28
diff -u -b -r1.27 -r1.28
--- backend/render_handler_cairo.cpp 18 Oct 2007 23:14:18 -0000 1.27
+++ backend/render_handler_cairo.cpp 1 Nov 2007 09:35:46 -0000 1.28
@@ -17,9 +17,6 @@
// Known bugs:
// - Shape filling problems: renderer skips certain fills. See car_smash.swf.
-// - Fonts: The "a" is not filled in text-test.swf. If subshapes are ignored
-// then it works as expected. The Agg renderer would suggest this has
-// something to do with the fill rule.
// - Rotation problem in gradient-tests.swf.
//
// TODOs:
@@ -627,7 +624,7 @@
void
- draw_subshape(PathVec& path_vec,
+ draw_subshape(const PathVec& path_vec,
const matrix& mat,
const cxform& cx,
float pixel_scale,
@@ -834,7 +831,21 @@
const PathVec& path_vec = def->get_paths();
std::vector<line_style> dummy_ls;
- draw_shape_character(def, mat, dummy_cx, pixel_scale, glyph_fs, dummy_ls);
+
+ cairo_matrix_t old_matrix;
+ cairo_get_matrix(_cr, &old_matrix);
+
+ apply_matrix(_cr, mat);
+
+ std::vector<cairo_pattern_t*> fill_styles_cairo
+ = build_cairo_styles(glyph_fs, dummy_cx, mat);
+
+
+ draw_subshape(path_vec, mat, dummy_cx, pixel_scale, fill_styles_cairo,
dummy_ls);
+
+ destroy_cairo_patterns(fill_styles_cairo);
+
+ cairo_set_matrix(_cr, &old_matrix);
}
virtual bool allow_glyph_textures()
@@ -901,6 +912,8 @@
return 8;
case CAIRO_FORMAT_A1:
return 1;
+ default:
+ return 0;
}
}
Index: backend/render_handler_ogl.cpp
===================================================================
RCS file: /sources/gnash/gnash/backend/render_handler_ogl.cpp,v
retrieving revision 1.84
retrieving revision 1.85
diff -u -b -r1.84 -r1.85
--- backend/render_handler_ogl.cpp 1 Nov 2007 08:04:09 -0000 1.84
+++ backend/render_handler_ogl.cpp 1 Nov 2007 09:35:47 -0000 1.85
@@ -258,7 +258,8 @@
}
}
-void Tesselator::endContour()
+void
+Tesselator::endContour()
{
gluTessEndContour(_tessobj);
}
@@ -1414,7 +1415,13 @@
glyph_fs.push_back(coloring);
std::vector<line_style> dummy_ls;
- draw_shape_character(def, mat, dummy_cx, pixel_scale, glyph_fs, dummy_ls);
+
+ glPushMatrix();
+ apply_matrix(mat);
+
+ draw_subshape(def->get_paths(), mat, dummy_cx, pixel_scale, glyph_fs,
dummy_ls);
+
+ glPopMatrix();
}
virtual bool allow_glyph_textures()
- [Gnash-commit] gnash ChangeLog backend/render_handler.h backen...,
Bastiaan Jacques <=