OLD | NEW |
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 |
OLD | NEW |