OLD | NEW |
1 // Copyright (C) 2013 Google Inc. All rights reserved. | 1 // Copyright (C) 2013 Google Inc. All rights reserved. |
2 // | 2 // |
3 // Redistribution and use in source and binary forms, with or without | 3 // Redistribution and use in source and binary forms, with or without |
4 // modification, are permitted provided that the following conditions are | 4 // modification, are permitted provided that the following conditions are |
5 // met: | 5 // met: |
6 // | 6 // |
7 // * Redistributions of source code must retain the above copyright | 7 // * Redistributions of source code must retain the above copyright |
8 // notice, this list of conditions and the following disclaimer. | 8 // notice, this list of conditions and the following disclaimer. |
9 // * Redistributions in binary form must reproduce the above | 9 // * Redistributions in binary form must reproduce the above |
10 // copyright notice, this list of conditions and the following disclaimer | 10 // copyright notice, this list of conditions and the following disclaimer |
(...skipping 14 matching lines...) Expand all Loading... |
25 // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | 25 // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
26 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE | 26 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
27 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | 27 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
28 | 28 |
29 #ifndef GraphicsContextState_h | 29 #ifndef GraphicsContextState_h |
30 #define GraphicsContextState_h | 30 #define GraphicsContextState_h |
31 | 31 |
32 #include "platform/graphics/DrawLooperBuilder.h" | 32 #include "platform/graphics/DrawLooperBuilder.h" |
33 #include "platform/graphics/GraphicsTypes.h" | 33 #include "platform/graphics/GraphicsTypes.h" |
34 #include "platform/graphics/StrokeData.h" | 34 #include "platform/graphics/StrokeData.h" |
| 35 #include "platform/graphics/paint/PaintFlags.h" |
35 #include "third_party/skia/include/core/SkColorFilter.h" | 36 #include "third_party/skia/include/core/SkColorFilter.h" |
36 #include "third_party/skia/include/core/SkPaint.h" | 37 #include "third_party/skia/include/core/SkPaint.h" |
37 #include "third_party/skia/include/core/SkRefCnt.h" | 38 #include "third_party/skia/include/core/SkRefCnt.h" |
38 #include "wtf/Allocator.h" | 39 #include "wtf/Allocator.h" |
39 #include "wtf/Noncopyable.h" | 40 #include "wtf/Noncopyable.h" |
40 #include "wtf/PtrUtil.h" | 41 #include "wtf/PtrUtil.h" |
41 #include <memory> | 42 #include <memory> |
42 | 43 |
43 namespace blink { | 44 namespace blink { |
44 | 45 |
45 // Encapsulates the state information we store for each pushed graphics state. | 46 // Encapsulates the state information we store for each pushed graphics state. |
46 // Only GraphicsContext can use this class. | 47 // Only GraphicsContext can use this class. |
47 class PLATFORM_EXPORT GraphicsContextState final { | 48 class PLATFORM_EXPORT GraphicsContextState final { |
48 USING_FAST_MALLOC(GraphicsContextState); | 49 USING_FAST_MALLOC(GraphicsContextState); |
49 | 50 |
50 public: | 51 public: |
51 static std::unique_ptr<GraphicsContextState> create() { | 52 static std::unique_ptr<GraphicsContextState> create() { |
52 return WTF::wrapUnique(new GraphicsContextState()); | 53 return WTF::wrapUnique(new GraphicsContextState()); |
53 } | 54 } |
54 | 55 |
55 static std::unique_ptr<GraphicsContextState> createAndCopy( | 56 static std::unique_ptr<GraphicsContextState> createAndCopy( |
56 const GraphicsContextState& other) { | 57 const GraphicsContextState& other) { |
57 return WTF::wrapUnique(new GraphicsContextState(other)); | 58 return WTF::wrapUnique(new GraphicsContextState(other)); |
58 } | 59 } |
59 | 60 |
60 void copy(const GraphicsContextState&); | 61 void copy(const GraphicsContextState&); |
61 | 62 |
62 // SkPaint objects that reflect the current state. If the length of the | 63 // PaintFlags objects that reflect the current state. If the length of the |
63 // path to be stroked is known, pass it in for correct dash or dot placement. | 64 // path to be stroked is known, pass it in for correct dash or dot placement. |
64 const SkPaint& strokePaint(int strokedPathLength = 0) const; | 65 const PaintFlags& strokePaint(int strokedPathLength = 0) const; |
65 const SkPaint& fillPaint() const { return m_fillPaint; } | 66 const PaintFlags& fillPaint() const { return m_fillPaint; } |
66 | 67 |
67 uint16_t saveCount() const { return m_saveCount; } | 68 uint16_t saveCount() const { return m_saveCount; } |
68 void incrementSaveCount() { ++m_saveCount; } | 69 void incrementSaveCount() { ++m_saveCount; } |
69 void decrementSaveCount() { --m_saveCount; } | 70 void decrementSaveCount() { --m_saveCount; } |
70 | 71 |
71 // Stroke data | 72 // Stroke data |
72 Color strokeColor() const { return m_strokePaint.getColor(); } | 73 Color strokeColor() const { return m_strokePaint.getColor(); } |
73 void setStrokeColor(const Color&); | 74 void setStrokeColor(const Color&); |
74 | 75 |
75 const StrokeData& getStrokeData() const { return m_strokeData; } | 76 const StrokeData& getStrokeData() const { return m_strokeData; } |
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
112 bool shouldAntialias() const { return m_shouldAntialias; } | 113 bool shouldAntialias() const { return m_shouldAntialias; } |
113 void setShouldAntialias(bool); | 114 void setShouldAntialias(bool); |
114 | 115 |
115 private: | 116 private: |
116 GraphicsContextState(); | 117 GraphicsContextState(); |
117 explicit GraphicsContextState(const GraphicsContextState&); | 118 explicit GraphicsContextState(const GraphicsContextState&); |
118 GraphicsContextState& operator=(const GraphicsContextState&); | 119 GraphicsContextState& operator=(const GraphicsContextState&); |
119 | 120 |
120 // This is mutable to enable dash path effect updates when the paint is | 121 // This is mutable to enable dash path effect updates when the paint is |
121 // fetched for use. | 122 // fetched for use. |
122 mutable SkPaint m_strokePaint; | 123 mutable PaintFlags m_strokePaint; |
123 SkPaint m_fillPaint; | 124 PaintFlags m_fillPaint; |
124 | 125 |
125 StrokeData m_strokeData; | 126 StrokeData m_strokeData; |
126 | 127 |
127 TextDrawingModeFlags m_textDrawingMode; | 128 TextDrawingModeFlags m_textDrawingMode; |
128 | 129 |
129 InterpolationQuality m_interpolationQuality; | 130 InterpolationQuality m_interpolationQuality; |
130 | 131 |
131 uint16_t m_saveCount; | 132 uint16_t m_saveCount; |
132 | 133 |
133 bool m_shouldAntialias : 1; | 134 bool m_shouldAntialias : 1; |
134 }; | 135 }; |
135 | 136 |
136 } // namespace blink | 137 } // namespace blink |
137 | 138 |
138 #endif // GraphicsContextState_h | 139 #endif // GraphicsContextState_h |
OLD | NEW |