gnash-dev
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Gnash-dev] matrix transformations


From: Udo Giacomozzi
Subject: Re: [Gnash-dev] matrix transformations
Date: Sun, 4 Nov 2007 22:04:40 +0100

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





reply via email to

[Prev in Thread] Current Thread [Next in Thread]