Hello Bastiaan, Sunday, November 4, 2007, 9:42:40 PM, you wrote: BJ> I noticed that, unlike the other renderers, the Agg renderer BJ> applies matrix transforms to paths:
BJ> apply_matrix_to_path(def->get_paths(), paths, mat); The reason is to avoid applying the same matrix xform for both outlines and fills. So it's done only once and then reused. Outlines need special processing (to convert them to shapes). Also, when multiple clip bounds are active, we avoid that the underlying library has to transform the coordinates for each clip bounds. Example: A filled shape with an outline, 3 clipping bounds are active. AGG would have to translate to the same coordinates six times since we also do six library calls. BTW, your agg::renderer_mclip suggestion looks promising! I hope it is also available in AGG 2.4; will try to check your patch soon. I guess this would improve performance for complex clipping bounds situations. Not sure if it would make much difference, though. There are some more parts in AGG that could be optimized (many TODOs as you can see), but nothing that would give the renderer a *huge* performance gain. I see much more potential in caching mechanisms like bitmap caches (harder to implement than I thought initially) and vertex caches (pre-transformed paths that can be used directly for AGG calls unless the character has been changed). Udo _______________________________________________ Gnash-dev mailing list [email protected] http://lists.gnu.org/mailman/listinfo/gnash-dev

