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