From 9492bdf10e74e4c4d7e8ab7298dbd275935a45f0 Mon Sep 17 00:00:00 2001 From: Derek Sollenberger Date: Fri, 18 Feb 2011 14:04:07 -0500 Subject: Do not merge: Cherry-pick 2nd part of GL_BLEND CL from master Ensure non-ready tiles are painted with the page background color. bug: 3465059 bug: 3471680 Change-Id: Id0cc94f181882d1308471c9bd898fe005101d6f8 --- WebCore/platform/graphics/android/BaseLayerAndroid.cpp | 1 + WebCore/platform/graphics/android/BaseTile.cpp | 2 +- WebCore/platform/graphics/android/GLWebViewState.cpp | 1 + WebCore/platform/graphics/android/GLWebViewState.h | 5 +++++ 4 files changed, 8 insertions(+), 1 deletion(-) (limited to 'WebCore/platform/graphics') diff --git a/WebCore/platform/graphics/android/BaseLayerAndroid.cpp b/WebCore/platform/graphics/android/BaseLayerAndroid.cpp index 00eac74..3483e44 100644 --- a/WebCore/platform/graphics/android/BaseLayerAndroid.cpp +++ b/WebCore/platform/graphics/android/BaseLayerAndroid.cpp @@ -264,6 +264,7 @@ bool BaseLayerAndroid::drawGL(IntRect& viewRect, SkRect& visibleRect, XLOG("drawBasePicture drawGL() viewRect: %d, %d, %d, %d", left, top, width, height); + m_glWebViewState->setBackgroundColor(color); 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/BaseTile.cpp b/WebCore/platform/graphics/android/BaseTile.cpp index 960d073..2942f24 100644 --- a/WebCore/platform/graphics/android/BaseTile.cpp +++ b/WebCore/platform/graphics/android/BaseTile.cpp @@ -256,7 +256,7 @@ void BaseTile::paintBitmap() SkCanvas* canvas = texture->canvas(); canvas->save(); - canvas->drawARGB(0, 0, 0, 0, SkXfermode::kClear_Mode); + canvas->drawColor(tiledPage->glWebViewState()->getBackgroundColor()); canvas->scale(scale, scale); canvas->translate(-x * w, -y * h); diff --git a/WebCore/platform/graphics/android/GLWebViewState.cpp b/WebCore/platform/graphics/android/GLWebViewState.cpp index 38b747d..d57abf8 100644 --- a/WebCore/platform/graphics/android/GLWebViewState.cpp +++ b/WebCore/platform/graphics/android/GLWebViewState.cpp @@ -68,6 +68,7 @@ GLWebViewState::GLWebViewState(android::Mutex* buttonMutex) , m_usePageA(true) , m_globalButtonMutex(buttonMutex) , m_baseLayerUpdate(true) + , m_backgroundColor(SK_ColorWHITE) { m_viewport.setEmpty(); m_previousViewport.setEmpty(); diff --git a/WebCore/platform/graphics/android/GLWebViewState.h b/WebCore/platform/graphics/android/GLWebViewState.h index 7fa5e39..d45340d 100644 --- a/WebCore/platform/graphics/android/GLWebViewState.h +++ b/WebCore/platform/graphics/android/GLWebViewState.h @@ -205,6 +205,9 @@ public: return false; } + void setBackgroundColor(SkColor color) { m_backgroundColor = color; } + SkColor getBackgroundColor() { return m_backgroundColor; } + private: void inval(const IntRect& rect); // caller must hold m_baseLayerLock @@ -244,6 +247,8 @@ private: bool m_baseLayerUpdate; IntRect m_invalidateRect; + + SkColor m_backgroundColor; }; } // namespace WebCore -- cgit v1.1