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

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

Issue 960483002: Implement compositing bounds in CompositingDisplayItem (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Rebase from space Created 5 years, 9 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/FloatRect.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 SkXfermode::Mode xferMode, const float opacity, const FloatRect* clipR ect = 0, ColorFilter colorFilter = ColorFilterNone) 22 static PassOwnPtr<BeginCompositingDisplayItem> create(DisplayItemClient clie nt, const SkXfermode::Mode xferMode, const float opacity, const FloatRect* bound s = nullptr, ColorFilter colorFilter = ColorFilterNone)
23 { 23 {
24 return adoptPtr(new BeginCompositingDisplayItem(client, xferMode, opacit y, clipRect, colorFilter)); 24 return adoptPtr(new BeginCompositingDisplayItem(client, xferMode, opacit y, bounds, colorFilter));
25 } 25 }
26 26
27 BeginCompositingDisplayItem(DisplayItemClient client, const SkXfermode::Mode xferMode, const float opacity, const FloatRect* clipRect = 0, ColorFilter color Filter = ColorFilterNone) 27 BeginCompositingDisplayItem(DisplayItemClient client, const SkXfermode::Mode xferMode, const float opacity, const FloatRect* bounds, ColorFilter colorFilter = ColorFilterNone)
28 : PairedBeginDisplayItem(client, BeginCompositing) 28 : PairedBeginDisplayItem(client, BeginCompositing)
29 , m_xferMode(xferMode) 29 , m_xferMode(xferMode)
30 , m_opacity(opacity) 30 , m_opacity(opacity)
31 , m_hasBounds(bounds)
31 , m_colorFilter(colorFilter) 32 , m_colorFilter(colorFilter)
32 { 33 {
33 if (clipRect) 34 if (bounds)
34 m_clipRect = adoptPtr(new FloatRect(*clipRect)); 35 m_bounds = FloatRect(*bounds);
35 } 36 }
36 37
37 virtual void replay(GraphicsContext*) override; 38 virtual void replay(GraphicsContext*) override;
38 virtual void appendToWebDisplayItemList(WebDisplayItemList*) const override; 39 virtual void appendToWebDisplayItemList(WebDisplayItemList*) const override;
39 40
40 private: 41 private:
41 #ifndef NDEBUG 42 #ifndef NDEBUG
42 virtual void dumpPropertiesAsDebugString(WTF::StringBuilder&) const override ; 43 virtual void dumpPropertiesAsDebugString(WTF::StringBuilder&) const override ;
43 #endif 44 #endif
44 const SkXfermode::Mode m_xferMode; 45 const SkXfermode::Mode m_xferMode;
45 const float m_opacity; 46 const float m_opacity;
46 OwnPtr<FloatRect> m_clipRect; 47 bool m_hasBounds;
48 FloatRect m_bounds;
47 ColorFilter m_colorFilter; 49 ColorFilter m_colorFilter;
48 }; 50 };
49 51
50 class PLATFORM_EXPORT EndCompositingDisplayItem : public PairedEndDisplayItem { 52 class PLATFORM_EXPORT EndCompositingDisplayItem : public PairedEndDisplayItem {
51 WTF_MAKE_FAST_ALLOCATED; 53 WTF_MAKE_FAST_ALLOCATED;
52 public: 54 public:
53 static PassOwnPtr<EndCompositingDisplayItem> create(DisplayItemClient client ) 55 static PassOwnPtr<EndCompositingDisplayItem> create(DisplayItemClient client )
54 { 56 {
55 return adoptPtr(new EndCompositingDisplayItem(client)); 57 return adoptPtr(new EndCompositingDisplayItem(client));
56 } 58 }
57 59
58 EndCompositingDisplayItem(DisplayItemClient client) 60 EndCompositingDisplayItem(DisplayItemClient client)
59 : PairedEndDisplayItem(client, EndCompositing) { } 61 : PairedEndDisplayItem(client, EndCompositing) { }
60 62
61 virtual void replay(GraphicsContext*) override; 63 virtual void replay(GraphicsContext*) override;
62 virtual void appendToWebDisplayItemList(WebDisplayItemList*) const override; 64 virtual void appendToWebDisplayItemList(WebDisplayItemList*) const override;
63 65
64 private: 66 private:
65 #if ENABLE(ASSERT) 67 #if ENABLE(ASSERT)
66 virtual bool isEndAndPairedWith(const DisplayItem& other) const override fin al { return other.type() == BeginCompositing; } 68 virtual bool isEndAndPairedWith(const DisplayItem& other) const override fin al { return other.type() == BeginCompositing; }
67 #endif 69 #endif
68 }; 70 };
69 71
70 } // namespace blink 72 } // namespace blink
71 73
72 #endif // CompositingDisplayItem_h 74 #endif // CompositingDisplayItem_h
OLDNEW
« no previous file with comments | « Source/core/paint/CompositingRecorder.cpp ('k') | Source/platform/graphics/paint/CompositingDisplayItem.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698