summaryrefslogtreecommitdiffstats
path: root/Source/WebCore
diff options
context:
space:
mode:
authorNicolas Roard <nicolasroard@google.com>2011-11-23 14:50:19 -0800
committerNicolas Roard <nicolasroard@google.com>2011-11-23 15:39:19 -0800
commit0f41c43617778ceae3a371d923719f446c0ad63c (patch)
treefad9cd74695e0b8994d00d4eeb71dd460570fe5e /Source/WebCore
parent3eaf0f8cdb150a43732c8391a73046811b3c378d (diff)
downloadexternal_webkit-0f41c43617778ceae3a371d923719f446c0ad63c.zip
external_webkit-0f41c43617778ceae3a371d923719f446c0ad63c.tar.gz
external_webkit-0f41c43617778ceae3a371d923719f446c0ad63c.tar.bz2
Display media layers even if we ran out of layers textures
bug:5665482 Change-Id: Idd398d2adb7edcd5c782b9d6f019f448afadb21b
Diffstat (limited to 'Source/WebCore')
-rw-r--r--Source/WebCore/platform/graphics/android/BaseLayerAndroid.cpp3
-rw-r--r--Source/WebCore/platform/graphics/android/GLWebViewState.cpp3
-rw-r--r--Source/WebCore/platform/graphics/android/LayerAndroid.cpp10
3 files changed, 10 insertions, 6 deletions
diff --git a/Source/WebCore/platform/graphics/android/BaseLayerAndroid.cpp b/Source/WebCore/platform/graphics/android/BaseLayerAndroid.cpp
index 8358b2a..7ec2d78 100644
--- a/Source/WebCore/platform/graphics/android/BaseLayerAndroid.cpp
+++ b/Source/WebCore/platform/graphics/android/BaseLayerAndroid.cpp
@@ -370,8 +370,7 @@ bool BaseLayerAndroid::drawGL(IntRect& viewRect, SkRect& visibleRect,
updateLayerPositions(visibleRect);
// For now, we render layers only if the rendering mode
// is kAllTextures or kClippedTextures
- if (m_state->layersRenderingMode() < GLWebViewState::kScrollableAndFixedLayers
- && compositedRoot->drawGL()) {
+ if (compositedRoot->drawGL()) {
if (TilesManager::instance()->layerTexturesRemain()) {
// only try redrawing for layers if layer textures remain,
// otherwise we'll repaint without getting anything done
diff --git a/Source/WebCore/platform/graphics/android/GLWebViewState.cpp b/Source/WebCore/platform/graphics/android/GLWebViewState.cpp
index 5206b7a..a33c3d0 100644
--- a/Source/WebCore/platform/graphics/android/GLWebViewState.cpp
+++ b/Source/WebCore/platform/graphics/android/GLWebViewState.cpp
@@ -379,6 +379,9 @@ bool GLWebViewState::setLayersRenderingMode(TexturesResult& nbTexturesNeeded)
if (nbTexturesNeeded.full < maxTextures)
m_layersRenderingMode = kAllTextures;
+ if (!maxTextures && !nbTexturesNeeded.full)
+ m_layersRenderingMode = kAllTextures;
+
if (m_layersRenderingMode < layersRenderingMode
&& m_layersRenderingMode != kAllTextures)
invalBase = true;
diff --git a/Source/WebCore/platform/graphics/android/LayerAndroid.cpp b/Source/WebCore/platform/graphics/android/LayerAndroid.cpp
index 9e7626a..859973a 100644
--- a/Source/WebCore/platform/graphics/android/LayerAndroid.cpp
+++ b/Source/WebCore/platform/graphics/android/LayerAndroid.cpp
@@ -1115,11 +1115,13 @@ bool LayerAndroid::drawGL()
bool askScreenUpdate = false;
- if (m_texture)
- askScreenUpdate |= m_texture->draw();
+ if (m_state->layersRenderingMode() < GLWebViewState::kScrollableAndFixedLayers) {
+ if (m_texture)
+ askScreenUpdate |= m_texture->draw();
- if (m_imageTexture)
- m_imageTexture->drawGL(this);
+ if (m_imageTexture)
+ m_imageTexture->drawGL(this);
+ }
// When the layer is dirty, the UI thread should be notified to redraw.
askScreenUpdate |= drawChildrenGL();