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

Side by Side Diff: experimental/SkV8Example/Path2D.h

Issue 661033005: SkV8Sample: Now with Path2D and Path2DBuilder. (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: path* Created 6 years, 1 month 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 | « experimental/SkV8Example/DrawingMethods.cpp ('k') | experimental/SkV8Example/Path2D.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright 2014 Google Inc. 2 * Copyright 2014 Google Inc.
3 * 3 *
4 * 4 *
5 * Use of this source code is governed by a BSD-style license that can be 5 * Use of this source code is governed by a BSD-style license that can be
6 * found in the LICENSE file. 6 * found in the LICENSE file.
7 * 7 *
8 */ 8 */
9 9
10 #ifndef SkV8Example_Path2D_DEFINED 10 #ifndef SkV8Example_Path2D_DEFINED
11 #define SkV8Example_Path2D_DEFINED 11 #define SkV8Example_Path2D_DEFINED
12 12
13 #include <v8.h> 13 #include <v8.h>
14 14
15 #include "SkPath.h" 15 #include "SkPath.h"
16 #include "SkTypes.h" 16 #include "SkTypes.h"
17 17
18 class Global; 18 class Global;
19 19
20 // Path2D bridges between JS and SkPath.
20 class Path2D : SkNoncopyable { 21 class Path2D : SkNoncopyable {
21 public: 22 public:
22 Path2D() : fSkPath() {} 23 Path2D(SkPath* path);
23 virtual ~Path2D() {} 24 virtual ~Path2D();
24 25
25 const SkPath& getSkPath() { return fSkPath; } 26 static void AddToGlobal(Global* global) {
27 gGlobal = global;
28 }
26 29
27 // The JS Path2D constuctor implementation. 30 v8::Persistent<v8::Object>& persistent() {
28 static void ConstructPath(const v8::FunctionCallbackInfo<v8::Value>& args); 31 return handle_;
32 }
29 33
30 // Add the Path2D JS constructor to the global context. 34 SkPath* path() {
31 static void AddToGlobal(Global* global); 35 return path_;
36 }
32 37
33 // Path2D JS methods.
34 static void ClosePath(const v8::FunctionCallbackInfo<v8::Value>& args);
35 static void MoveTo(const v8::FunctionCallbackInfo<v8::Value>& args);
36 static void LineTo(const v8::FunctionCallbackInfo<v8::Value>& args);
37 static void QuadraticCurveTo(
38 const v8::FunctionCallbackInfo<v8::Value>& args);
39 static void BezierCurveTo(const v8::FunctionCallbackInfo<v8::Value>& args);
40 static void Arc(const v8::FunctionCallbackInfo<v8::Value>& args);
41 static void Rect(const v8::FunctionCallbackInfo<v8::Value>& args);
42 static void Oval(const v8::FunctionCallbackInfo<v8::Value>& args);
43 static void ConicTo(const v8::FunctionCallbackInfo<v8::Value>& args);
44 private: 38 private:
45 SkPath fSkPath; 39 // The handle to this object in JS space.
40 v8::Persistent<v8::Object> handle_;
46 41
47 static Path2D* Unwrap(const v8::FunctionCallbackInfo<v8::Value>& args); 42 SkPath* path_;
48 43
44 // The global context we are running in.
49 static Global* gGlobal; 45 static Global* gGlobal;
46
47 // The template for what a JS Path2D object looks like.
48 static v8::Persistent<v8::ObjectTemplate> gPath2DTemplate;
50 }; 49 };
51 50
52 #endif 51 #endif
OLDNEW
« no previous file with comments | « experimental/SkV8Example/DrawingMethods.cpp ('k') | experimental/SkV8Example/Path2D.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698