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

Unified Diff: Source/core/rendering/RenderLayer.h

Issue 59613010: Fix propagation of clip-path and border-radius clipping to child layers (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: fix for mac build Created 7 years, 1 month 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
« no previous file with comments | « Source/core/rendering/CompositedLayerMapping.cpp ('k') | Source/core/rendering/RenderLayer.cpp » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: Source/core/rendering/RenderLayer.h
diff --git a/Source/core/rendering/RenderLayer.h b/Source/core/rendering/RenderLayer.h
index 6b34194d4389a43b74fe4c89b96b120af8f785d8..9e602c91deb9ef2f9d1629154120411d0ad655c5 100644
--- a/Source/core/rendering/RenderLayer.h
+++ b/Source/core/rendering/RenderLayer.h
@@ -62,6 +62,8 @@
namespace WebCore {
+struct ClipperContext;
+class CompositedLayerMapping;
class FilterEffectRenderer;
class FilterOperations;
class HitTestRequest;
@@ -70,11 +72,11 @@ class HitTestingTransformState;
class PlatformEvent;
class RenderFlowThread;
class RenderGeometryMap;
-class CompositedLayerMapping;
class RenderLayerCompositor;
class RenderReplica;
class RenderScrollbarPart;
class RenderStyle;
+class RenderSVGResourceClipper;
class RenderView;
class Scrollbar;
class TransformationMatrix;
@@ -207,6 +209,9 @@ public:
void setHasOutOfFlowPositionedDescendant(bool hasDescendant) { m_hasOutOfFlowPositionedDescendant = hasDescendant; }
void setHasOutOfFlowPositionedDescendantDirty(bool dirty) { m_hasOutOfFlowPositionedDescendantDirty = dirty; }
+ void setHasComplexClippedAncestor(bool hasAncestor) { m_hasComplexClippedAncestor = hasAncestor; }
+ bool hasComplexClippedAncestor() const { return m_hasComplexClippedAncestor; }
+
bool childLayerHasBlendMode() const { ASSERT(!m_childLayerHasBlendModeStatusDirty); return m_childLayerHasBlendMode; }
bool hasUnclippedDescendant() const { return m_hasUnclippedDescendant; }
@@ -466,6 +471,7 @@ private:
void updateSelfPaintingLayer();
void updateVisibilityAfterStyleChange(const RenderStyle* oldStyle);
+ void updateHasComplexClippedAncestor();
void updateOutOfFlowPositioned(const RenderStyle* oldStyle);
@@ -516,6 +522,7 @@ private:
void paintMaskForFragments(const LayerFragments&, GraphicsContext*, const LayerPaintingInfo&, RenderObject* paintingRootForRenderer);
void paintChildClippingMaskForFragments(const LayerFragments&, GraphicsContext*, const LayerPaintingInfo&, RenderObject* paintingRootForRenderer);
void paintTransformedLayerIntoFragments(GraphicsContext*, const LayerPaintingInfo&, PaintLayerFlags);
+ void applyComplexClip(GraphicsContext*, RenderLayer*, ClipperContext*, const LayerPaintingInfo&, const LayoutPoint& offsetFromRoot, bool* needsContextRestore, bool* rootRelativeBoundsComputed, IntRect* rootRelativeBounds, Vector<RenderSVGResourceClipper*>*);
RenderLayer* hitTestLayer(RenderLayer* rootLayer, RenderLayer* containerLayer, const HitTestRequest& request, HitTestResult& result,
const LayoutRect& hitTestRect, const HitTestLocation&, bool appliedTransform,
@@ -628,6 +635,8 @@ protected:
unsigned m_isUnclippedDescendant : 1;
+ unsigned m_hasComplexClippedAncestor : 1;
+
const unsigned m_isRootLayer : 1;
unsigned m_usedTransparency : 1; // Tracks whether we need to close a transparent layer, i.e., whether
« no previous file with comments | « Source/core/rendering/CompositedLayerMapping.cpp ('k') | Source/core/rendering/RenderLayer.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698