diff options
author | Chris Craik <ccraik@google.com> | 2012-01-04 13:44:50 -0800 |
---|---|---|
committer | Android Git Automerger <android-git-automerger@android.com> | 2012-01-04 13:44:50 -0800 |
commit | 9a4df506f5f02fbd4cca2cde580324c45a0b56f5 (patch) | |
tree | 2f980357fda88ae9e013ce9eacee24ad0625846e | |
parent | acd6e2772da194e45555acd3c5792246c91a15f5 (diff) | |
parent | 08a2aede30839b296a2fad9d27939c4aaa6ccbb1 (diff) | |
download | external_webkit-9a4df506f5f02fbd4cca2cde580324c45a0b56f5.zip external_webkit-9a4df506f5f02fbd4cca2cde580324c45a0b56f5.tar.gz external_webkit-9a4df506f5f02fbd4cca2cde580324c45a0b56f5.tar.bz2 |
am 08a2aede: Merge "When in singlesurfacemode, resist switching out - DO NOT MERGE" into ics-mr1
* commit '08a2aede30839b296a2fad9d27939c4aaa6ccbb1':
When in singlesurfacemode, resist switching out - DO NOT MERGE
-rw-r--r-- | Source/WebCore/platform/graphics/android/GLWebViewState.cpp | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/Source/WebCore/platform/graphics/android/GLWebViewState.cpp b/Source/WebCore/platform/graphics/android/GLWebViewState.cpp index 262d270..3bcda9a 100644 --- a/Source/WebCore/platform/graphics/android/GLWebViewState.cpp +++ b/Source/WebCore/platform/graphics/android/GLWebViewState.cpp @@ -133,6 +133,7 @@ void GLWebViewState::setBaseLayer(BaseLayerAndroid* layer, const SkRegion& inval m_zoomManager.swapPages(); // reset zoom state m_tiledPageA->discardTextures(); m_tiledPageB->discardTextures(); + m_layersRenderingMode = kAllTextures; } if (layer) { XLOG("new base layer %p, (inval region empty %d) with child %p", layer, inval.isEmpty(), layer->getChild(0)); @@ -377,6 +378,12 @@ bool GLWebViewState::setLayersRenderingMode(TexturesResult& nbTexturesNeeded) int maxTextures = TilesManager::instance()->maxLayerTextureCount(); LayersRenderingMode layersRenderingMode = m_layersRenderingMode; + if (m_layersRenderingMode == kSingleSurfaceRendering) { + // only switch out of SingleSurface mode, if we have 2x needed textures + // to avoid changing too often + maxTextures /= 2; + } + m_layersRenderingMode = kSingleSurfaceRendering; if (nbTexturesNeeded.fixed < maxTextures) m_layersRenderingMode = kFixedLayers; |