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

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

Issue 1216833003: Make rendering use PaintingNodes for increased efficiency. (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: Cleanup and fixes for keeping stocks working Created 5 years, 5 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
« no previous file with comments | « sky/engine/core/painting/Drawable.h ('k') | sky/engine/core/painting/PaintingNode.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
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
3 // found in the LICENSE file.
4
5 #ifndef SKY_ENGINE_CORE_PAINTING_PAINTINGNODE_H_
6 #define SKY_ENGINE_CORE_PAINTING_PAINTINGNODE_H_
7
8 #include "sky/engine/core/painting/Drawable.h"
9 #include "sky/engine/tonic/dart_wrappable.h"
10 #include "sky/engine/wtf/PassRefPtr.h"
11 #include "sky/engine/wtf/RefCounted.h"
12 #include "third_party/skia/include/core/SkDrawable.h"
13
14 namespace blink {
15
16 class PaintingNodeDrawable : public SkDrawable {
abarth-chromium 2015/07/07 20:49:39 One class per file, please.
iansf 2015/07/07 21:11:23 Done.
17 public:
18 static PassRefPtr<PaintingNodeDrawable> create(PassRefPtr<SkDrawable> skDraw able = nullptr);
19
20 ~PaintingNodeDrawable() override {}
abarth-chromium 2015/07/07 20:49:39 Please move virtual (and override) implementations
iansf 2015/07/07 21:11:23 Done.
21
22 SkRect onGetBounds();
23 void onDraw(SkCanvas* canvas);
24 SkPicture* onNewPictureSnapshot();
25 void set_drawable(PassRefPtr<SkDrawable> drawable) { m_drawable = drawable; }
26
27 private:
28 PaintingNodeDrawable();
29 explicit PaintingNodeDrawable(PassRefPtr<SkDrawable> skDrawable);
30 RefPtr<SkDrawable> m_drawable;
31 };
32
33
34
35
36 class PaintingNode : public RefCounted<PaintingNode>, public DartWrappable {
37 DEFINE_WRAPPERTYPEINFO();
38 public:
39 static PassRefPtr<PaintingNode> create();
40 ~PaintingNode() override;
41
42 void setBackingDrawable(PassRefPtr<Drawable> drawable) {
43 m_paintingNodeDrawable->set_drawable(drawable->toSkia());
44 }
45 SkDrawable* toSkia() { return m_paintingNodeDrawable.get(); }
46 PassRefPtr<Picture> newPictureSnapshot();
47
48 private:
49 PaintingNode();
50 RefPtr<PaintingNodeDrawable> m_paintingNodeDrawable;
51 };
52
53 } // namespace blink
54
55 #endif // SKY_ENGINE_CORE_PAINTING_PAINTINGNODE_H_
OLDNEW
« no previous file with comments | « sky/engine/core/painting/Drawable.h ('k') | sky/engine/core/painting/PaintingNode.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698