Index: trunk/Source/platform/graphics/GraphicsLayer.cpp |
=================================================================== |
--- trunk/Source/platform/graphics/GraphicsLayer.cpp (revision 168316) |
+++ trunk/Source/platform/graphics/GraphicsLayer.cpp (working copy) |
@@ -99,6 +99,7 @@ |
, m_replicaLayer(0) |
, m_replicatedLayer(0) |
, m_paintCount(0) |
+ , m_contentsSolidColor(Color::transparent) |
, m_contentsLayer(0) |
, m_contentsLayerId(0) |
, m_scrollableArea(0) |
@@ -1018,6 +1019,27 @@ |
setContentsTo(m_ninePatchLayer ? m_ninePatchLayer->layer() : 0); |
} |
+void GraphicsLayer::setContentsToSolidColor(const Color& color) |
+{ |
+ if (color == m_contentsSolidColor) |
+ return; |
+ |
+ m_contentsSolidColor = color; |
+ if (color.alpha()) { |
+ if (!m_solidColorLayer) { |
+ m_solidColorLayer = adoptPtr(Platform::current()->compositorSupport()->createSolidColorLayer()); |
+ registerContentsLayer(m_solidColorLayer->layer()); |
+ } |
+ m_solidColorLayer->setBackgroundColor(color.rgb()); |
+ } else { |
+ if (!m_solidColorLayer) |
+ return; |
+ unregisterContentsLayer(m_solidColorLayer->layer()); |
+ m_solidColorLayer.clear(); |
+ } |
+ setContentsTo(m_solidColorLayer ? m_solidColorLayer->layer() : 0); |
+} |
+ |
bool GraphicsLayer::addAnimation(PassOwnPtr<WebAnimation> popAnimation) |
{ |
OwnPtr<WebAnimation> animation(popAnimation); |