[webkit-dev] Using RenderLayer for transforms

Simon Fraser simon.fraser at apple.com
Wed Apr 8 09:11:41 PDT 2009


On Apr 6, 2009, at 3:04 AM, Eric Seidel wrote:

> Dave, Simon (and the larger community):
>
> I've been looking at fixing:
> https://bugs.webkit.org/show_bug.cgi?id=20769
> https://bugs.webkit.org/show_bug.cgi?id=14015
> in SVG.  A large part of the mis-match between SVG renderers and the
> HTML/CSS rendering tree is the use of transforms.
>
> In SVG, transforms (and clipping) are handled by the renderers
> themselves.  the HTML/CSS rendering tree does not handle transforms,
> and instead only rectilinear layout using parent-offsets.  Things
> which require transforms get a RenderLayer and all the RenderObject
> methods remain transform-ignorant.
>
> Is this currently the long-term plan for transforms?  Or will HTML
> also be moving to a transform aware rendering tree?
>
> To fix these bugs I will need to sorta "hack" how things like outline
> drawing are done, focus ring invalidation, and repaint rect
> calculation to take transforms into account inside the renderers.

I don't believe that there is any plan to move the HTML render tree  
away from
rectilinear shapes, so transform handling will continue to be in  
RenderLayers
for HTML (although there are some complex issues there, like transforms
on inlines and in multicol).

I think it would be possible to use RenderLayers for transformed SVG  
elements,
but we'd have to do some work to make RenderLayer less HTML -specific.  
Currently
it builds the presentation-order tree (the z-order lists) based on  
knowledge of
stacking contexts. It's clipping is also all rect-based, so we might  
have to educate it
about path-based clipping.

Simon



More information about the webkit-dev mailing list