Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1455)

Unified Diff: Source/core/rendering/RenderLayerBacking.cpp

Issue 23511004: mix-blend-mode implementation for accelerated layers - blink part (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: adding the rendering part Created 7 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: Source/core/rendering/RenderLayerBacking.cpp
diff --git a/Source/core/rendering/RenderLayerBacking.cpp b/Source/core/rendering/RenderLayerBacking.cpp
index 991d529755e2b4362627f51818ffca24254383f2..2411ccbc897b6b331cb790a8cd41c0f52fc12ba2 100644
--- a/Source/core/rendering/RenderLayerBacking.cpp
+++ b/Source/core/rendering/RenderLayerBacking.cpp
@@ -208,6 +208,8 @@ void RenderLayerBacking::createPrimaryGraphicsLayer()
if (RuntimeEnabledFeatures::cssCompositingEnabled())
updateLayerBlendMode(renderer()->style());
+ if (RuntimeEnabledFeatures::cssCompositingEnabled())
+ updateIsolatedGroupRoot();
}
void RenderLayerBacking::destroyGraphicsLayers()
@@ -263,8 +265,16 @@ void RenderLayerBacking::updateFilters(const RenderStyle* style)
}
}
-void RenderLayerBacking::updateLayerBlendMode(const RenderStyle*)
+void RenderLayerBacking::updateLayerBlendMode(const RenderStyle* style)
{
+ setBlendMode(style->blendMode());
+}
+
+void RenderLayerBacking::updateIsolatedGroupRoot()
+{
+ const RenderLayer* layer = m_owningLayer;
+ ASSERT(!layer->shouldIsolateCompositedBlendingDescendants() || layer->isStackingContext());
+ childForSuperlayers()->setIsIsolatedGroupRoot(layer->shouldIsolateCompositedBlendingDescendants());
}
void RenderLayerBacking::updateContentsOpaque()
@@ -493,6 +503,8 @@ void RenderLayerBacking::updateGraphicsLayerGeometry()
if (RuntimeEnabledFeatures::cssCompositingEnabled())
updateLayerBlendMode(renderer()->style());
+ if (RuntimeEnabledFeatures::cssCompositingEnabled())
+ updateIsolatedGroupRoot();
bool isSimpleContainer = isSimpleContainerCompositingLayer();
@@ -1463,8 +1475,9 @@ void RenderLayerBacking::setRequiresOwnBackingStore(bool requiresOwnBacking)
compositor()->repaintInCompositedAncestor(m_owningLayer, compositedBounds());
}
-void RenderLayerBacking::setBlendMode(BlendMode)
+void RenderLayerBacking::setBlendMode(BlendMode blendMode)
{
+ childForSuperlayers()->setBlendMode(blendMode);
}
void RenderLayerBacking::setContentsNeedDisplay()

Powered by Google App Engine
This is Rietveld 408576698