Update To 11.40.268.0
[platform/framework/web/crosswalk.git] / src / third_party / skia / experimental / SkV8Example / Path2D.h
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 // Path2D bridges between JS and SkPath.
21 class Path2D : SkNoncopyable {
22 public:
23     Path2D(SkPath* path);
24     virtual ~Path2D();
25
26     static void AddToGlobal(Global* global) {
27         gGlobal = global;
28     }
29
30     v8::Persistent<v8::Object>& persistent() {
31         return handle_;
32     }
33
34     SkPath* path() {
35         return path_;
36     }
37
38 private:
39     // The handle to this object in JS space.
40     v8::Persistent<v8::Object> handle_;
41
42     SkPath* path_;
43
44     // The global context we are running in.
45     static Global* gGlobal;
46
47     // The template for what a JS Path2D object looks like.
48     static v8::Persistent<v8::ObjectTemplate> gPath2DTemplate;
49 };
50
51 #endif