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

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

Issue 900653003: Avoid empty display item pairs (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Fix try bot breakage 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 | Annotate | Revision Log
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/LayoutRect.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 DisplayItem { 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, Type type, const CompositeOperator preCompositeOp, const WebBlendMode& preBl endMode, const float opacity, const CompositeOperator postCompositeOp) 22 static PassOwnPtr<BeginCompositingDisplayItem> create(DisplayItemClient clie nt, const CompositeOperator preCompositeOp, const WebBlendMode& preBlendMode, co nst float opacity, const CompositeOperator postCompositeOp)
23 { 23 {
24 return adoptPtr(new BeginCompositingDisplayItem(client, type, preComposi teOp, preBlendMode, opacity, postCompositeOp)); 24 return adoptPtr(new BeginCompositingDisplayItem(client, preCompositeOp, preBlendMode, opacity, postCompositeOp));
25 } 25 }
26 26
27 BeginCompositingDisplayItem(DisplayItemClient client, Type type, const Compo siteOperator preCompositeOp, const WebBlendMode& preBlendMode, const float opaci ty, const CompositeOperator postCompositeOp) 27 BeginCompositingDisplayItem(DisplayItemClient client, const CompositeOperato r preCompositeOp, const WebBlendMode& preBlendMode, const float opacity, const C ompositeOperator postCompositeOp)
28 : DisplayItem(client, type) 28 : PairedBeginDisplayItem(client, BeginCompositing)
29 , m_preCompositeOp(preCompositeOp) 29 , m_preCompositeOp(preCompositeOp)
30 , m_preBlendMode(preBlendMode) 30 , m_preBlendMode(preBlendMode)
31 , m_opacity(opacity) 31 , m_opacity(opacity)
32 , m_postCompositeOp(postCompositeOp) { } 32 , m_postCompositeOp(postCompositeOp) { }
33 33
34 virtual void replay(GraphicsContext*) override; 34 virtual void replay(GraphicsContext*) override;
35 virtual void appendToWebDisplayItemList(WebDisplayItemList*) const override; 35 virtual void appendToWebDisplayItemList(WebDisplayItemList*) const override;
36 36
37 private: 37 private:
38 #ifndef NDEBUG 38 #ifndef NDEBUG
39 virtual void dumpPropertiesAsDebugString(WTF::StringBuilder&) const override ; 39 virtual void dumpPropertiesAsDebugString(WTF::StringBuilder&) const override ;
40 #endif 40 #endif
41 const CompositeOperator m_preCompositeOp; 41 const CompositeOperator m_preCompositeOp;
42 const WebBlendMode m_preBlendMode; 42 const WebBlendMode m_preBlendMode;
43 const float m_opacity; 43 const float m_opacity;
44 const CompositeOperator m_postCompositeOp; 44 const CompositeOperator m_postCompositeOp;
45 }; 45 };
46 46
47 class PLATFORM_EXPORT EndCompositingDisplayItem : public DisplayItem { 47 class PLATFORM_EXPORT EndCompositingDisplayItem : public PairedEndDisplayItem {
48 WTF_MAKE_FAST_ALLOCATED; 48 WTF_MAKE_FAST_ALLOCATED;
49 public: 49 public:
50 static PassOwnPtr<EndCompositingDisplayItem> create(DisplayItemClient client , Type type) 50 static PassOwnPtr<EndCompositingDisplayItem> create(DisplayItemClient client )
51 { 51 {
52 return adoptPtr(new EndCompositingDisplayItem(client, type)); 52 return adoptPtr(new EndCompositingDisplayItem(client));
53 } 53 }
54 54
55 EndCompositingDisplayItem(DisplayItemClient client, Type type) 55 EndCompositingDisplayItem(DisplayItemClient client)
56 : DisplayItem(client, type) { } 56 : PairedEndDisplayItem(client, EndCompositing) { }
57 57
58 virtual void replay(GraphicsContext*) override; 58 virtual void replay(GraphicsContext*) override;
59 virtual void appendToWebDisplayItemList(WebDisplayItemList*) const override; 59 virtual void appendToWebDisplayItemList(WebDisplayItemList*) const override;
60
61 private:
62 #if ENABLE(ASSERT)
63 virtual bool isEndAndPairedWith(const DisplayItem& other) const override fin al { return other.type() == BeginCompositing; }
64 #endif
60 }; 65 };
61 66
62 } // namespace blink 67 } // namespace blink
63 68
64 #endif // CompositingDisplayItem_h 69 #endif // CompositingDisplayItem_h
OLDNEW
« no previous file with comments | « Source/platform/graphics/paint/ClipPathDisplayItem.h ('k') | Source/platform/graphics/paint/DisplayItem.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698