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

Unified Diff: third_party/WebKit/Source/core/paint/ObjectPaintProperties.h

Issue 2299533002: WIP: Construct SPV2's scroll paint property tree (Closed)
Patch Set: Add more paint property builder tests, update comments/documentation" Created 4 years, 3 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: third_party/WebKit/Source/core/paint/ObjectPaintProperties.h
diff --git a/third_party/WebKit/Source/core/paint/ObjectPaintProperties.h b/third_party/WebKit/Source/core/paint/ObjectPaintProperties.h
index b989c8bc6a209e9ab1f4ba256926740563f4379e..e9e3aab5603cc244c28a4cbb84dfd98b0d0b7190 100644
--- a/third_party/WebKit/Source/core/paint/ObjectPaintProperties.h
+++ b/third_party/WebKit/Source/core/paint/ObjectPaintProperties.h
@@ -11,6 +11,7 @@
#include "platform/graphics/paint/EffectPaintPropertyNode.h"
#include "platform/graphics/paint/PaintChunkProperties.h"
#include "platform/graphics/paint/PropertyTreeState.h"
+#include "platform/graphics/paint/ScrollPaintPropertyNode.h"
#include "platform/graphics/paint/TransformPaintPropertyNode.h"
#include "wtf/PassRefPtr.h"
#include "wtf/PtrUtil.h"
@@ -55,6 +56,10 @@ public:
const TransformPaintPropertyNode* scrollTranslation() const { return m_scrollTranslation.get(); }
const TransformPaintPropertyNode* scrollbarPaintOffset() const { return m_scrollbarPaintOffset.get(); }
+ // Auxillary scrolling information for compositor-thread scrolling. Includes information such as the
+ // hierarchy of scrollable areas, the extent that can be scrolled, etc.
+ const ScrollPaintPropertyNode* scroll() const { return m_scroll.get(); }
+
const EffectPaintPropertyNode* effect() const { return m_effect.get(); }
// The hierarchy of the clip subtree created by a LayoutObject is as follows:
@@ -75,7 +80,9 @@ public:
// at the right painting step.
struct LocalBorderBoxProperties {
LayoutPoint paintOffset;
+ // TODO(pdr): Rename this GeometryPropertyTreeState because it does not contain scroll.
PropertyTreeState propertyTreeState;
+ const ScrollPaintPropertyNode* scroll;
};
const LocalBorderBoxProperties* localBorderBoxProperties() const { return m_localBorderBoxProperties.get(); }
// ContentsProperties is the PropertyTreeState state that is the same as in localBorderBoxProperties, except that it is inside
@@ -92,6 +99,7 @@ public:
void clearSvgLocalToBorderBoxTransform() { m_svgLocalToBorderBoxTransform = nullptr; }
void clearScrollTranslation() { m_scrollTranslation = nullptr; }
void clearScrollbarPaintOffset() { m_scrollbarPaintOffset = nullptr; }
+ void clearScroll() { m_scroll = nullptr; }
template <typename... Args> TransformPaintPropertyNode* createOrUpdatePaintOffsetTranslation(Args&&... args) { return createOrUpdateProperty(m_paintOffsetTranslation, std::forward<Args>(args)...); }
template <typename... Args> TransformPaintPropertyNode* createOrUpdateTransform(Args&&... args) { return createOrUpdateProperty(m_transform, std::forward<Args>(args)...); }
@@ -107,6 +115,7 @@ public:
return createOrUpdateProperty(m_scrollTranslation, std::forward<Args>(args)...);
}
template <typename... Args> TransformPaintPropertyNode* createOrUpdateScrollbarPaintOffset(Args&&... args) { return createOrUpdateProperty(m_scrollbarPaintOffset, std::forward<Args>(args)...); }
+ template <typename... Args> ScrollPaintPropertyNode* createOrUpdateScroll(Args&&... args) { return createOrUpdateProperty(m_scroll, std::forward<Args>(args)...); }
template <typename... Args> EffectPaintPropertyNode* createOrUpdateEffect(Args&&... args) { return createOrUpdateProperty(m_effect, std::forward<Args>(args)...); }
template <typename... Args> ClipPaintPropertyNode* createOrUpdateCssClip(Args&&... args) { return createOrUpdateProperty(m_cssClip, std::forward<Args>(args)...); }
template <typename... Args> ClipPaintPropertyNode* createOrUpdateCssClipFixedPosition(Args&&... args) { return createOrUpdateProperty(m_cssClipFixedPosition, std::forward<Args>(args)...); }
@@ -138,6 +147,7 @@ private:
RefPtr<TransformPaintPropertyNode> m_svgLocalToBorderBoxTransform;
RefPtr<TransformPaintPropertyNode> m_scrollTranslation;
RefPtr<TransformPaintPropertyNode> m_scrollbarPaintOffset;
+ RefPtr<ScrollPaintPropertyNode> m_scroll;
std::unique_ptr<LocalBorderBoxProperties> m_localBorderBoxProperties;
};
« no previous file with comments | « third_party/WebKit/Source/core/paint/FramePainter.cpp ('k') | third_party/WebKit/Source/core/paint/PaintLayerPainter.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698