Well, I don't know how to without sacrificing incremental display list
building. The idea behind incremental DL building is to retain display
lists at the level of stacking contexts: each stacking context is
associated with a DL and optionally a layer. This makes it very easy to
avoid reconstructing most of the display items in the page when, for
example, updating a transform, since most of the stacking contexts on the
page remain untouched. If we were to move to a FrameLayerBuilder approach
we'd have a nontrivial mapping from layout objects to display items and I
don't know how we'd retain DLs at that point.

I guess one thing we could do is to have a fake display item in the
canvas's proper place in the display list, and use that to determine
whether it is safe to treat the canvas as a stacking context. If we detect
that treating the canvas is a stacking context affects the rendering, fall
back to readback. This is a performance hazard, of course, but I suspect it
wouldn't trigger on much if any real-world content.

Patrick
On Mar 14, 2015 10:21 PM, "Robert O'Callahan" <rob...@ocallahan.org> wrote:

> On Sun, Mar 15, 2015 at 6:10 PM, Patrick Walton <pwal...@mozilla.com>
> wrote:
>
>> We can only layerize stacking contexts, since we have no
>> FrameLayerBuilder.
>> So we have to promote canvases to stacking contexts if we want to layerize
>> them. WebKit does the same thing.
>>
>
> You should fix that. Blink is :-)
>
> Rob
> --
> oIo otoeololo oyooouo otohoaoto oaonoyooonoeo owohooo oioso oaonogoroyo
> owoiotoho oao oboroootohoeoro oooro osoiosotoeoro owoiololo oboeo
> osouobojoeocoto otooo ojouodogomoeonoto.o oAogoaoiono,o oaonoyooonoeo
> owohooo
> osoaoyoso otooo oao oboroootohoeoro oooro osoiosotoeoro,o o‘oRoaocoao,o’o
> oioso
> oaonosowoeoroaoboloeo otooo otohoeo ocooouoroto.o oAonodo oaonoyooonoeo
> owohooo
> osoaoyoso,o o‘oYooouo ofooooolo!o’o owoiololo oboeo oiono odoaonogoeoro
> ooofo
> otohoeo ofoioroeo ooofo ohoeololo.
>
_______________________________________________
dev-servo mailing list
dev-servo@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-servo

Reply via email to