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

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

Issue 1017593005: Add a basic custom painting facility to Sky (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: Add missing files 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 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_PAINTINGCONTEXT_H_ 5 #ifndef SKY_ENGINE_CORE_PAINTING_PAINTINGCONTEXT_H_
6 #define SKY_ENGINE_CORE_PAINTING_PAINTINGCONTEXT_H_ 6 #define SKY_ENGINE_CORE_PAINTING_PAINTINGCONTEXT_H_
7 7
8 #include "base/callback.h"
8 #include "sky/engine/core/painting/Paint.h" 9 #include "sky/engine/core/painting/Paint.h"
9 #include "sky/engine/platform/graphics/DisplayList.h" 10 #include "sky/engine/platform/graphics/DisplayList.h"
10 #include "sky/engine/tonic/dart_wrappable.h" 11 #include "sky/engine/tonic/dart_wrappable.h"
11 #include "sky/engine/wtf/PassRefPtr.h" 12 #include "sky/engine/wtf/PassRefPtr.h"
12 #include "sky/engine/wtf/RefCounted.h" 13 #include "sky/engine/wtf/RefCounted.h"
13 14
14 namespace blink { 15 namespace blink {
15 16
16 class PaintingContext : public RefCounted<PaintingContext>, public DartWrappable { 17 class PaintingContext : public RefCounted<PaintingContext>, public DartWrappable {
17 DEFINE_WRAPPERTYPEINFO(); 18 DEFINE_WRAPPERTYPEINFO();
18 public: 19 public:
20 typedef base::Callback<void (RefPtr<PaintingContext>)> CommitCallback;
21
19 ~PaintingContext() override; 22 ~PaintingContext() override;
20 PassRefPtr<PaintingContext> create(const FloatRect& bounds) { return adoptRe f(new PaintingContext(bounds)); } 23 static PassRefPtr<PaintingContext> create(const FloatSize& size, const Commi tCallback& commitCallback)
24 {
25 return adoptRef(new PaintingContext(size, commitCallback));
26 }
21 27
22 double height() const { return m_displayList->bounds().height(); } 28 double height() const { return m_size.height(); }
23 double width() const { return m_displayList->bounds().width(); } 29 double width() const { return m_size.width(); }
24 30
25 void drawCircle(double x, double y, double radius, Paint* paint); 31 void drawCircle(double x, double y, double radius, Paint* paint);
26 void commit(); 32 void commit();
27 33
34 PassRefPtr<DisplayList> takeDisplayList()
35 {
36 ASSERT(!m_canvas);
37 return m_displayList.release();
38 }
39
28 private: 40 private:
29 PaintingContext(const FloatRect& bounds); 41 PaintingContext(const FloatSize& size, const CommitCallback& commitCallback) ;
30 42
43 FloatSize m_size;
44 CommitCallback m_commitCallback;
31 RefPtr<DisplayList> m_displayList; 45 RefPtr<DisplayList> m_displayList;
32 SkCanvas* m_canvas; 46 SkCanvas* m_canvas;
33 }; 47 };
34 48
35 } // namespace blink 49 } // namespace blink
36 50
37 #endif // SKY_ENGINE_CORE_PAINTING_PAINTINGCONTEXT_H_ 51 #endif // SKY_ENGINE_CORE_PAINTING_PAINTINGCONTEXT_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698