This will need to be reverted once our build systems are upgraded to a newer
version of FreeType. In the long run, we need to increase our runtime
dependency to this newer version.
Just an ANGLE update, plus updating the list of failed tests on WinXP, also now properly reporting on unexpeced success (using todo(true) instead of ok(false))
The idea here is to do double-buffering just by setting mUseIntermediateSurface on ContainerLayers when needed. When
we need to double-buffer compositing of a layer tree, ApplyDoubleBuffering examines the root container layer. If the
child layers don't overlap and together cover the window, we don't need to double-buffer in that container, instead
we can double-buffer each child layer separately --- so we recursively call ApplyDoubleBuffering on the child layers.
When a container has children that overlap or that don't cover the container's visible rect (the latter case
probably can't happen in practice), we force it to have an intermediate surface.
This change fixes this bug because in normal browser windows the Web content layer double-buffers
We'll need this for the improved backbuffer code in the next patch. When a layer tree's
leaf layers don't overlap and cover the window, the next patch will avoid double-buffering
by blitting those layers directly to the window. If the window has transparent parts
(e.g. with Aero Glass), we need to draw the layers for those transparent parts using
OPERATOR_SOURCE so that the alpha values in the window are reset.
Instead of doing tricks with the cliprect to prevent layer content from adding to aOpaqueRegion, pass an explicit flag to control that.
Mark a ContainerLayer hidden if all its children are hidden. This will need to be changed if/when we add layer properties
that result in a ContainerLayer drawing content even if it has no children.
The updated quartz backend actually supports extend none properly.
We currently (and in the update) patch extend_pad to behave like the old
extend_none instead of a real extend_pad, so this change shouldn't have any
rendering differences now and fixes the reftest when we update.
GLContext::ClearSafely() wasn't really safe, it was making naive assumptions about GL state and as a result, a WebGL script could obtain an uninitialized backbuffer.
The updated quartz backend actually supports extend none properly.
We currently (and in the update) patch extend_pad to behave like the old
extend_none instead of a real extend_pad, so this change shouldn't have any
rendering differences now and fixes the reftest when we update.