Home | History | Annotate | Download | only in SkV8Example
      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
     52