• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright 2014 Google Inc.
3  *
4  *
5  * Use of this source code is governed by a BSD-style license that can be
6  * found in the LICENSE file.
7  *
8  */
9 
10 #ifndef SkV8Example_Path2D_DEFINED
11 #define SkV8Example_Path2D_DEFINED
12 
13 #include <v8.h>
14 
15 #include "SkPath.h"
16 #include "SkTypes.h"
17 
18 class Global;
19 
20 class Path2D : SkNoncopyable {
21 public:
Path2D()22     Path2D() : fSkPath() {}
~Path2D()23     virtual ~Path2D() {}
24 
getSkPath()25     const SkPath& getSkPath() { return fSkPath; }
26 
27     // The JS Path2D constuctor implementation.
28     static void ConstructPath(const v8::FunctionCallbackInfo<v8::Value>& args);
29 
30     // Add the Path2D JS constructor to the global context.
31     static void AddToGlobal(Global* global);
32 
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:
45     SkPath fSkPath;
46 
47     static Path2D* Unwrap(const v8::FunctionCallbackInfo<v8::Value>& args);
48 
49     static Global* gGlobal;
50 };
51 
52 #endif
53