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

Unified Diff: Source/core/paint/TransparencyDisplayItem.h

Issue 744163002: Enable fast/images with slimming paint (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: ToT-ed with enum. Created 6 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
Index: Source/core/paint/TransparencyDisplayItem.h
diff --git a/Source/core/paint/TransparencyDisplayItem.h b/Source/core/paint/TransparencyDisplayItem.h
index 290d916f0d37c830bc8643a72329522ab380c8fd..6209996b363fe39b32ea4a33e8e766b0d32a21c6 100644
--- a/Source/core/paint/TransparencyDisplayItem.h
+++ b/Source/core/paint/TransparencyDisplayItem.h
@@ -11,13 +11,21 @@
namespace blink {
+enum TransparencyClipBehavior {
+ ClipToRect,
+ DoNotClip
+};
+
+// FIXME: Move this file to TransparencyRecorder
+
class BeginTransparencyDisplayItem : public DisplayItem {
public:
- BeginTransparencyDisplayItem(const RenderObject* renderer, Type type, const LayoutRect& clipRect, const WebBlendMode& blendMode, const float opacity)
+ BeginTransparencyDisplayItem(const RenderObject* renderer, Type type, const LayoutRect& clipRect, const WebBlendMode& blendMode, const float opacity, TransparencyClipBehavior clipBehavior)
: DisplayItem(renderer, type)
, m_clipRect(clipRect)
, m_blendMode(blendMode)
- , m_opacity(opacity) { }
+ , m_opacity(opacity)
+ , m_clipBehavior(clipBehavior) { }
virtual void replay(GraphicsContext*) override;
private:
@@ -30,18 +38,33 @@ private:
const LayoutRect m_clipRect;
const WebBlendMode m_blendMode;
const float m_opacity;
+ const TransparencyClipBehavior m_clipBehavior;
};
class EndTransparencyDisplayItem : public DisplayItem {
public:
- EndTransparencyDisplayItem(const RenderObject* renderer, Type type)
- : DisplayItem(renderer, type) { }
+ EndTransparencyDisplayItem(const RenderObject* renderer, Type type, TransparencyClipBehavior clipBehavior)
+ : DisplayItem(renderer, type), m_clipBehavior(clipBehavior) { }
virtual void replay(GraphicsContext*) override;
private:
#ifndef NDEBUG
virtual WTF::String asDebugString() const override;
#endif
+ const TransparencyClipBehavior m_clipBehavior;
+};
+
+class TransparencyRecorder {
+public:
+ explicit TransparencyRecorder(GraphicsContext*, const RenderObject*, DisplayItem::Type, const LayoutRect& clipRect, const WebBlendMode&, const float opacity, TransparencyClipBehavior = ClipToRect);
+
+ ~TransparencyRecorder();
+
+private:
+ const RenderObject* m_renderer;
+ const DisplayItem::Type m_type;
+ GraphicsContext* m_graphicsContext;
+ const TransparencyClipBehavior m_clipBehavior;
};
} // namespace blink

Powered by Google App Engine
This is Rietveld 408576698