Title: [120509] trunk/Source/WebCore
Revision
120509
Author
[email protected]
Date
2012-06-15 16:33:18 -0700 (Fri, 15 Jun 2012)

Log Message

[chromium] Fix composited scrollbars with transparent thumbs
https://bugs.webkit.org/show_bug.cgi?id=89247

Reviewed by James Robinson.

On some platforms, the thumb of a scrollbar can be transparent. Fix by
always drawing the thumb quad with blending.

* platform/graphics/chromium/cc/CCScrollbarLayerImpl.cpp:
(WebCore::CCScrollbarLayerImpl::appendQuads):
* platform/graphics/chromium/cc/CCTextureDrawQuad.cpp:
(WebCore::CCTextureDrawQuad::setNeedsBlending):
(WebCore):
* platform/graphics/chromium/cc/CCTextureDrawQuad.h:
(CCTextureDrawQuad):

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (120508 => 120509)


--- trunk/Source/WebCore/ChangeLog	2012-06-15 23:18:34 UTC (rev 120508)
+++ trunk/Source/WebCore/ChangeLog	2012-06-15 23:33:18 UTC (rev 120509)
@@ -1,3 +1,21 @@
+2012-06-15  Adrienne Walker  <[email protected]>
+
+        [chromium] Fix composited scrollbars with transparent thumbs
+        https://bugs.webkit.org/show_bug.cgi?id=89247
+
+        Reviewed by James Robinson.
+
+        On some platforms, the thumb of a scrollbar can be transparent. Fix by
+        always drawing the thumb quad with blending.
+
+        * platform/graphics/chromium/cc/CCScrollbarLayerImpl.cpp:
+        (WebCore::CCScrollbarLayerImpl::appendQuads):
+        * platform/graphics/chromium/cc/CCTextureDrawQuad.cpp:
+        (WebCore::CCTextureDrawQuad::setNeedsBlending):
+        (WebCore):
+        * platform/graphics/chromium/cc/CCTextureDrawQuad.h:
+        (CCTextureDrawQuad):
+
 2012-06-14  James Robinson  <[email protected]>
 
         [chromium] Use SkBitmap in ImageLayerChromium

Modified: trunk/Source/WebCore/platform/graphics/chromium/cc/CCScrollbarLayerImpl.cpp (120508 => 120509)


--- trunk/Source/WebCore/platform/graphics/chromium/cc/CCScrollbarLayerImpl.cpp	2012-06-15 23:18:34 UTC (rev 120508)
+++ trunk/Source/WebCore/platform/graphics/chromium/cc/CCScrollbarLayerImpl.cpp	2012-06-15 23:33:18 UTC (rev 120509)
@@ -65,8 +65,12 @@
 
     IntRect thumbRect = theme->thumbRect(&m_scrollbar);
     thumbRect.move(-m_scrollbar.x(), -m_scrollbar.y());
-    if (m_thumbTextureId && theme->hasThumb(&m_scrollbar) && !thumbRect.isEmpty())
-        quadList.append(CCTextureDrawQuad::create(sharedQuadState, thumbRect, m_thumbTextureId, premultipledAlpha, uvRect, flipped));
+    if (m_thumbTextureId && theme->hasThumb(&m_scrollbar) && !thumbRect.isEmpty()) {
+        OwnPtr<CCTextureDrawQuad> quad = CCTextureDrawQuad::create(sharedQuadState, thumbRect, m_thumbTextureId, premultipledAlpha, uvRect, flipped);
+        quad->setNeedsBlending();
+        quadList.append(quad.release());
+    }
+
     if (!m_backgroundTextureId)
         return;
 

Modified: trunk/Source/WebCore/platform/graphics/chromium/cc/CCTextureDrawQuad.cpp (120508 => 120509)


--- trunk/Source/WebCore/platform/graphics/chromium/cc/CCTextureDrawQuad.cpp	2012-06-15 23:18:34 UTC (rev 120508)
+++ trunk/Source/WebCore/platform/graphics/chromium/cc/CCTextureDrawQuad.cpp	2012-06-15 23:33:18 UTC (rev 120509)
@@ -43,4 +43,9 @@
 {
 }
 
+void CCTextureDrawQuad::setNeedsBlending()
+{
+    m_needsBlending = true;
 }
+
+}

Modified: trunk/Source/WebCore/platform/graphics/chromium/cc/CCTextureDrawQuad.h (120508 => 120509)


--- trunk/Source/WebCore/platform/graphics/chromium/cc/CCTextureDrawQuad.h	2012-06-15 23:18:34 UTC (rev 120508)
+++ trunk/Source/WebCore/platform/graphics/chromium/cc/CCTextureDrawQuad.h	2012-06-15 23:33:18 UTC (rev 120509)
@@ -41,6 +41,8 @@
     FloatRect uvRect() const { return m_uvRect; }
     bool flipped() const { return m_flipped; }
 
+    void setNeedsBlending();
+
 private:
     CCTextureDrawQuad(const CCSharedQuadState*, const IntRect&, unsigned texture_id, bool premultipliedAlpha, const FloatRect& uvRect, bool flipped);
     
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to