diff options
author | Nicolas Roard <nicolasroard@google.com> | 2012-05-03 15:04:24 -0700 |
---|---|---|
committer | Android Git Automerger <android-git-automerger@android.com> | 2012-05-03 15:04:24 -0700 |
commit | 91de55fae359c3c7fd97c4aee4ec8408bcc3ef49 (patch) | |
tree | 603fc8c2722d226696e2741409344331095bf687 | |
parent | 32550c78a3cf2dd5f26157b9afee558fcd40cac1 (diff) | |
parent | c896f84c19de80a82235a1ee89abe8076a91296c (diff) | |
download | external_webkit-91de55fae359c3c7fd97c4aee4ec8408bcc3ef49.zip external_webkit-91de55fae359c3c7fd97c4aee4ec8408bcc3ef49.tar.gz external_webkit-91de55fae359c3c7fd97c4aee4ec8408bcc3ef49.tar.bz2 |
am c896f84c: Merge "Fixed single-surface rendering with fixed-background elements" into jb-dev
* commit 'c896f84c19de80a82235a1ee89abe8076a91296c':
Fixed single-surface rendering with fixed-background elements
-rw-r--r-- | Source/WebCore/platform/graphics/android/rendering/Surface.cpp | 12 | ||||
-rw-r--r-- | Source/WebKit/android/jni/WebViewCore.cpp | 1 |
2 files changed, 7 insertions, 6 deletions
diff --git a/Source/WebCore/platform/graphics/android/rendering/Surface.cpp b/Source/WebCore/platform/graphics/android/rendering/Surface.cpp index 652c165..437b8ff 100644 --- a/Source/WebCore/platform/graphics/android/rendering/Surface.cpp +++ b/Source/WebCore/platform/graphics/android/rendering/Surface.cpp @@ -192,10 +192,10 @@ void Surface::prepareGL(bool layerTilesDisabled, bool updateWithBlit) ALOGV("prepareGL on Surf %p, no SurfBack, needsTexture? %d", this, m_surfaceBacking, needsTexture()); - if (!needsTexture()) + if (needsTexture() || (isBase() && layerTilesDisabled)) + m_surfaceBacking = new SurfaceBacking(isBase()); + else return; - - m_surfaceBacking = new SurfaceBacking(isBase()); } if (tilesDisabled) { @@ -351,8 +351,10 @@ bool Surface::paint(SkCanvas* canvas) // In single surface mode, draw layer content onto the base layer if (isBase() && getFirstLayer()->countChildren() - && getFirstLayer()->state()->layersRenderingMode() > GLWebViewState::kClippedTextures) - getFirstLayer()->getChild(0)->drawCanvas(canvas, true, Layer::FlattenedLayers); + && getFirstLayer()->state()->layersRenderingMode() > GLWebViewState::kClippedTextures) { + for (unsigned int i = 0; i < getFirstLayer()->countChildren(); i++) + getFirstLayer()->getChild(i)->drawCanvas(canvas, true, Layer::FlattenedLayers); + } } else { SkAutoCanvasRestore acr(canvas, true); SkMatrix matrix; diff --git a/Source/WebKit/android/jni/WebViewCore.cpp b/Source/WebKit/android/jni/WebViewCore.cpp index 4e6ffc6..34740a8 100644 --- a/Source/WebKit/android/jni/WebViewCore.cpp +++ b/Source/WebKit/android/jni/WebViewCore.cpp @@ -824,7 +824,6 @@ BaseLayerAndroid* WebViewCore::createBaseLayer() FixedBackgroundBaseLayerAndroid* baseBackground = new FixedBackgroundBaseLayerAndroid(content); - // TODO -- check we don't have the assumption that baselayer has only one child realBase = new BaseLayerAndroid(0); realBase->setSize(content->width(), content->height()); realBase->addChild(baseBackground); |