Bug 748718 tried to fix masking of the checkerboard layer, but incorrectly
calculated the values for the right and bottom sides of the page, causing
less masking to occur than should happen.
It also possibly broke single-colour layer drawing (though I'm not sure this
worked previously), which this fixes by clearing to the page colour instead of
generating and drawing a texture for it.
ScreenshotLayer overrides SingleTileLayer's draw function to simplify the
drawing process. Unfortunately, this doesn't respect the layer mask, and can
cause the layer to appear incorrectly stretched.
Change the screenshot process so that whole-page screenshots pass parameters
that are pre-scaled (to avoid mismatches when the viewport changes), and set
the page size on the ScreenShotLayer so it draws in the correct place.
This also alters the masking slightly to avoid visible seams around masks in
the centre of the page, and to avoid unnnecessary drawing at the edges of the
page.
This change fixes the frame-rate issues with the screenshot layer, as it
removes unnecessary over-draw.
--HG--
extra : rebase_source : 671c5a48d7bc08b3b452ed7eea228eb22843c1ce
We currently check root layer position with the viewport.
During overscroll these won't match and we'll think we're
checkerboarding.
--HG--
extra : rebase_source : 27c93b524a539ad5851ff4ba5ee94f5321c24172
Presumably this started happening after we stopped setting the
checkerboard color all of the time.
--HG--
extra : rebase_source : d9c76561256161335727d3e76c8a8aed37a36c97
The crashes seem to be caused by SurfaceChange breaking any future
onDrawFrame calls. We don't seem to handle renewing the context at all. I added
mController.disposeGLContext(); mController.initGLContext(); to the
SizeChange::run() but that doesn't seem to fix it.
Bug 739867 will add this support back.
--HG--
extra : rebase_source : a4f71b22f381756c4285311cd3288b3ef46d5543
Fix overdrawing of the checkerboard layer by letting layers have a concept of
a display-port, and keeping the root layer's display port in track with
Gecko's.
Fix overdrawing of the checkerboard layer by letting layers have a concept of
a display-port, and keeping the root layer's display port in track with
Gecko's.
Rather than re-render the scrollbar texture and re-upload it when the opacity
changes, just render/upload it once and use a shader to modify the opacity.
Rename and make public the default shaders used in LayerRenderer, and make
loadShader a public, static method. This should make it easier for layers to
implement their own shader programs.
Not only does this reduce the amount of cruft needed while getting and setting these properties, it
makes the code more consistent because we don't have half of this stored in the Layer base class and
the other half provided by an abstract method implementation in subclasses. Furthermore, this
allows the VirtualLayer size to be updated based on the area painted by gecko rather than remaining
fixed at the view size when the virtual layer was created.