diff options
author | Patrick Scott <phanna@android.com> | 2010-11-04 10:11:34 -0400 |
---|---|---|
committer | Patrick Scott <phanna@android.com> | 2010-12-03 09:15:36 -0500 |
commit | 82f247bdbb98dd80c44209d87692c650c3704617 (patch) | |
tree | d8e9cb36f483b1e50d099563759d868aa6fef175 /WebCore/platform/graphics/android/BaseLayerAndroid.cpp | |
parent | 50114931eb31b3ee57480bf3d0068891aa62571f (diff) | |
download | external_webkit-82f247bdbb98dd80c44209d87692c650c3704617.zip external_webkit-82f247bdbb98dd80c44209d87692c650c3704617.tar.gz external_webkit-82f247bdbb98dd80c44209d87692c650c3704617.tar.bz2 |
Rewrite scrollable layers using multiple layers.
Remove PlatformBridge::updateLayers and instead call layersDraw from
ChromeClientAndroid during a requested sync.
Instead of LayerAndroid having knowledge of scrolling pictures, use multiple
layers (background, mask, foreground).
Update navigation to use the new structure. Always record nodes in absolute,
unscrolled coordinates. Do not track layers unless the node has a composited
layer and a last child. Check for composited parents when adding to tracked
layers as well.
TODO:
* developer.android.com doesn't completely work with navigation due to some
nodes being clipped out.
* BaseLayerAndroid needs to be able to operate with a matrix other than
identity.
* nested fixed position elements do not draw correctly.
* nested overflow layers haven't been tested.
Change-Id: I0e2bd37612341e8884d68153ab36194cb2dc1eeb
Diffstat (limited to 'WebCore/platform/graphics/android/BaseLayerAndroid.cpp')
-rw-r--r-- | WebCore/platform/graphics/android/BaseLayerAndroid.cpp | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/WebCore/platform/graphics/android/BaseLayerAndroid.cpp b/WebCore/platform/graphics/android/BaseLayerAndroid.cpp index f139eeb..996b272 100644 --- a/WebCore/platform/graphics/android/BaseLayerAndroid.cpp +++ b/WebCore/platform/graphics/android/BaseLayerAndroid.cpp @@ -92,7 +92,10 @@ void BaseLayerAndroid::setContent(const PictureSet& src) android::Mutex::Autolock lock(m_drawLock); #endif m_content.set(src); - setSize(src.width(), src.height()); + // FIXME: We cannot set the size of the base layer because it will screw up + // the matrix used. We need to fix matrix computation for the base layer + // and then we can set the size. + // setSize(src.width(), src.height()); } void BaseLayerAndroid::setExtra(SkPicture& src) |