OLD | NEW |
---|---|
1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 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 SKY_ENGINE_CORE_PAINTING_PAINT_H_ | 5 #ifndef SKY_ENGINE_CORE_PAINTING_PAINT_H_ |
6 #define SKY_ENGINE_CORE_PAINTING_PAINT_H_ | 6 #define SKY_ENGINE_CORE_PAINTING_PAINT_H_ |
7 | 7 |
8 #include "sky/engine/tonic/dart_wrappable.h" | 8 #include "sky/engine/tonic/dart_wrappable.h" |
9 #include "sky/engine/wtf/PassRefPtr.h" | 9 #include "sky/engine/wtf/PassRefPtr.h" |
10 #include "sky/engine/wtf/RefCounted.h" | 10 #include "sky/engine/wtf/RefCounted.h" |
11 #include "third_party/skia/include/core/SkPaint.h" | 11 #include "third_party/skia/include/core/SkPaint.h" |
12 | 12 |
13 namespace blink { | 13 namespace blink { |
14 | 14 |
15 class DrawLooper; | |
16 | |
15 class Paint : public RefCounted<Paint>, public DartWrappable { | 17 class Paint : public RefCounted<Paint>, public DartWrappable { |
16 DEFINE_WRAPPERTYPEINFO(); | 18 DEFINE_WRAPPERTYPEINFO(); |
17 public: | 19 public: |
18 ~Paint() override; | 20 ~Paint() override; |
19 static PassRefPtr<Paint> create() | 21 static PassRefPtr<Paint> create() |
20 { | 22 { |
21 return adoptRef(new Paint); | 23 return adoptRef(new Paint); |
22 } | 24 } |
25 static PassRefPtr<Paint> createWithWeakRef(SkPaint* paint) | |
26 { | |
27 return adoptRef(new Paint(paint)); | |
28 } | |
abarth-chromium
2015/05/27 02:12:51
How does this work? It seems like the Paint objec
Matt Perry
2015/05/27 14:46:32
Yeah, I'm using it with SkLayerDrawLooper::Builder
| |
23 | 29 |
24 bool isAntiAlias() const { return m_paint.isAntiAlias(); } | 30 bool isAntiAlias() const { return m_paint->isAntiAlias(); } |
25 void setIsAntiAlias(bool value) { m_paint.setAntiAlias(value); } | 31 void setIsAntiAlias(bool value) { m_paint->setAntiAlias(value); } |
26 | 32 |
27 unsigned color() const { return m_paint.getColor(); } | 33 unsigned color() const { return m_paint->getColor(); } |
28 void setColor(unsigned color) { m_paint.setColor(color); } | 34 void setColor(unsigned color) { m_paint->setColor(color); } |
29 | 35 |
30 void setARGB(unsigned a, unsigned r, unsigned g, unsigned b) | 36 void setARGB(unsigned a, unsigned r, unsigned g, unsigned b) |
31 { | 37 { |
32 m_paint.setARGB(a, r, g, b); | 38 m_paint->setARGB(a, r, g, b); |
33 } | 39 } |
40 void setDrawLooper(DrawLooper* looper); | |
34 | 41 |
35 const SkPaint& paint() const { return m_paint; } | 42 const SkPaint& paint() const { return *m_paint; } |
36 | 43 |
37 private: | 44 private: |
38 Paint(); | 45 Paint(); |
46 Paint(SkPaint* paint); | |
39 | 47 |
40 SkPaint m_paint; | 48 SkPaint* m_paint; |
49 | |
50 // The backing for m_paint when we own the SkPaint. Not used when | |
51 // constructed with createWithWeakRef. | |
52 SkPaint m_inline_paint; | |
41 }; | 53 }; |
42 | 54 |
43 } // namespace blink | 55 } // namespace blink |
44 | 56 |
45 #endif // SKY_ENGINE_CORE_PAINTING_PAINT_H_ | 57 #endif // SKY_ENGINE_CORE_PAINTING_PAINT_H_ |
OLD | NEW |