diff options
author | Shimeng (Simon) Wang <swang@google.com> | 2010-11-19 17:50:21 -0800 |
---|---|---|
committer | Shimeng (Simon) Wang <swang@google.com> | 2010-11-22 14:04:34 -0800 |
commit | ac26ff1e3f26e75d7b21ffb87019984faee4e1cf (patch) | |
tree | 74ea6efa0c0b60c3bc152ad176dca52f93361d43 /WebCore | |
parent | 0150e284d85a95236481fa58c868892da3341bb0 (diff) | |
download | external_webkit-ac26ff1e3f26e75d7b21ffb87019984faee4e1cf.zip external_webkit-ac26ff1e3f26e75d7b21ffb87019984faee4e1cf.tar.gz external_webkit-ac26ff1e3f26e75d7b21ffb87019984faee4e1cf.tar.bz2 |
Clear GL inside clear view.
issue: 3215000
Change-Id: I8668a857d840084c363b13c95efffc740a1451db
Diffstat (limited to 'WebCore')
-rw-r--r-- | WebCore/platform/graphics/android/BaseLayerAndroid.cpp | 6 | ||||
-rw-r--r-- | WebCore/platform/graphics/android/GLWebViewState.cpp | 5 | ||||
-rw-r--r-- | WebCore/platform/graphics/android/GLWebViewState.h | 2 |
3 files changed, 13 insertions, 0 deletions
diff --git a/WebCore/platform/graphics/android/BaseLayerAndroid.cpp b/WebCore/platform/graphics/android/BaseLayerAndroid.cpp index 8d84827..f5ec9cd 100644 --- a/WebCore/platform/graphics/android/BaseLayerAndroid.cpp +++ b/WebCore/platform/graphics/android/BaseLayerAndroid.cpp @@ -210,6 +210,12 @@ bool BaseLayerAndroid::drawGL(IntRect& viewRect, SkRect& visibleRect, glEnable(GL_SCISSOR_TEST); glScissor(left, top, width, height); + if (!m_glWebViewState || !m_glWebViewState->hasContent()) { + glClearColor(1, 1, 1, 1); + glClear(GL_COLOR_BUFFER_BIT); + glBindBuffer(GL_ARRAY_BUFFER, 0); + return true; + } glClearColor((float)m_color.red() / 255.0, (float)m_color.green() / 255.0, (float)m_color.blue() / 255.0, 1); diff --git a/WebCore/platform/graphics/android/GLWebViewState.cpp b/WebCore/platform/graphics/android/GLWebViewState.cpp index 4080a8a..58c7ab5 100644 --- a/WebCore/platform/graphics/android/GLWebViewState.cpp +++ b/WebCore/platform/graphics/android/GLWebViewState.cpp @@ -239,6 +239,11 @@ void GLWebViewState::setViewport(SkRect& viewport, float scale) static_cast<int>(ceilf(viewport.fBottom * invTileContentHeight))); } +bool GLWebViewState::hasContent() { + android::Mutex::Autolock lock(m_baseLayerLock); + return m_baseLayer; +} + } // namespace WebCore #endif // USE(ACCELERATED_COMPOSITING) diff --git a/WebCore/platform/graphics/android/GLWebViewState.h b/WebCore/platform/graphics/android/GLWebViewState.h index 526061e..cc1834d 100644 --- a/WebCore/platform/graphics/android/GLWebViewState.h +++ b/WebCore/platform/graphics/android/GLWebViewState.h @@ -191,6 +191,8 @@ public: unsigned int currentPictureCounter() const { return m_currentPictureCounter; } + bool hasContent(); + private: // Delay between scheduling a new page when the scale |