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

Side by Side Diff: Source/platform/graphics/paint/CompositingDisplayItem.h

Issue 947893002: Implement SVG masking with slimming paint (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Add a mask debug print string Created 5 years, 10 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 unified diff | Download patch
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef CompositingDisplayItem_h 5 #ifndef CompositingDisplayItem_h
6 #define CompositingDisplayItem_h 6 #define CompositingDisplayItem_h
7 7
8 #include "platform/geometry/LayoutRect.h" 8 #include "platform/geometry/FloatRect.h"
9 #include "platform/graphics/GraphicsTypes.h" 9 #include "platform/graphics/GraphicsTypes.h"
10 #include "platform/graphics/paint/DisplayItem.h" 10 #include "platform/graphics/paint/DisplayItem.h"
11 #include "public/platform/WebBlendMode.h" 11 #include "public/platform/WebBlendMode.h"
12 #include "wtf/PassOwnPtr.h" 12 #include "wtf/PassOwnPtr.h"
13 #ifndef NDEBUG 13 #ifndef NDEBUG
14 #include "wtf/text/WTFString.h" 14 #include "wtf/text/WTFString.h"
15 #endif 15 #endif
16 16
17 namespace blink { 17 namespace blink {
18 18
19 class PLATFORM_EXPORT BeginCompositingDisplayItem : public PairedBeginDisplayIte m { 19 class PLATFORM_EXPORT BeginCompositingDisplayItem : public PairedBeginDisplayIte m {
20 WTF_MAKE_FAST_ALLOCATED; 20 WTF_MAKE_FAST_ALLOCATED;
21 public: 21 public:
22 static PassOwnPtr<BeginCompositingDisplayItem> create(DisplayItemClient clie nt, const CompositeOperator compositeOp, const WebBlendMode& blendMode, const fl oat opacity) 22 static PassOwnPtr<BeginCompositingDisplayItem> create(DisplayItemClient clie nt, const SkXfermode::Mode xferMode, const float opacity, const FloatRect* clipR ect = 0, ColorFilter colorFilter = ColorFilterNone)
23 { 23 {
24 return adoptPtr(new BeginCompositingDisplayItem(client, compositeOp, ble ndMode, opacity)); 24 return adoptPtr(new BeginCompositingDisplayItem(client, xferMode, opacit y, clipRect, colorFilter));
25 } 25 }
26 26
27 BeginCompositingDisplayItem(DisplayItemClient client, const CompositeOperato r compositeOp, const WebBlendMode& blendMode, const float opacity) 27 BeginCompositingDisplayItem(DisplayItemClient client, const SkXfermode::Mode xferMode, const float opacity, const FloatRect* clipRect = 0, ColorFilter color Filter = ColorFilterNone)
28 : PairedBeginDisplayItem(client, BeginCompositing) 28 : PairedBeginDisplayItem(client, BeginCompositing)
29 , m_compositeOp(compositeOp) 29 , m_xferMode(xferMode)
30 , m_blendMode(blendMode) 30 , m_opacity(opacity)
31 , m_opacity(opacity) { } 31 , m_colorFilter(colorFilter)
32 {
33 if (clipRect)
34 m_clipRect = adoptPtr(new FloatRect(*clipRect));
35 }
32 36
33 virtual void replay(GraphicsContext*) override; 37 virtual void replay(GraphicsContext*) override;
34 virtual void appendToWebDisplayItemList(WebDisplayItemList*) const override; 38 virtual void appendToWebDisplayItemList(WebDisplayItemList*) const override;
35 39
36 private: 40 private:
37 #ifndef NDEBUG 41 #ifndef NDEBUG
38 virtual void dumpPropertiesAsDebugString(WTF::StringBuilder&) const override ; 42 virtual void dumpPropertiesAsDebugString(WTF::StringBuilder&) const override ;
39 #endif 43 #endif
40 const CompositeOperator m_compositeOp; 44 const SkXfermode::Mode m_xferMode;
41 const WebBlendMode m_blendMode;
42 const float m_opacity; 45 const float m_opacity;
46 OwnPtr<FloatRect> m_clipRect;
47 ColorFilter m_colorFilter;
43 }; 48 };
44 49
45 class PLATFORM_EXPORT EndCompositingDisplayItem : public PairedEndDisplayItem { 50 class PLATFORM_EXPORT EndCompositingDisplayItem : public PairedEndDisplayItem {
46 WTF_MAKE_FAST_ALLOCATED; 51 WTF_MAKE_FAST_ALLOCATED;
47 public: 52 public:
48 static PassOwnPtr<EndCompositingDisplayItem> create(DisplayItemClient client ) 53 static PassOwnPtr<EndCompositingDisplayItem> create(DisplayItemClient client )
49 { 54 {
50 return adoptPtr(new EndCompositingDisplayItem(client)); 55 return adoptPtr(new EndCompositingDisplayItem(client));
51 } 56 }
52 57
53 EndCompositingDisplayItem(DisplayItemClient client) 58 EndCompositingDisplayItem(DisplayItemClient client)
54 : PairedEndDisplayItem(client, EndCompositing) { } 59 : PairedEndDisplayItem(client, EndCompositing) { }
55 60
56 virtual void replay(GraphicsContext*) override; 61 virtual void replay(GraphicsContext*) override;
57 virtual void appendToWebDisplayItemList(WebDisplayItemList*) const override; 62 virtual void appendToWebDisplayItemList(WebDisplayItemList*) const override;
58 63
59 private: 64 private:
60 #if ENABLE(ASSERT) 65 #if ENABLE(ASSERT)
61 virtual bool isEndAndPairedWith(const DisplayItem& other) const override fin al { return other.type() == BeginCompositing; } 66 virtual bool isEndAndPairedWith(const DisplayItem& other) const override fin al { return other.type() == BeginCompositing; }
62 #endif 67 #endif
63 }; 68 };
64 69
65 } // namespace blink 70 } // namespace blink
66 71
67 #endif // CompositingDisplayItem_h 72 #endif // CompositingDisplayItem_h
OLDNEW
« no previous file with comments | « Source/platform/graphics/GraphicsContext.h ('k') | Source/platform/graphics/paint/CompositingDisplayItem.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698