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