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

Side by Side Diff: sky/engine/core/painting/Paint.h

Issue 1144193006: Sky: Add a DrawLooper interface to the painting API to be used for shadows. (Closed) Base URL: git@github.com:/domokit/mojo.git@master
Patch Set: . Created 5 years, 6 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 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_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698