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_Path2DBuilder_DEFINED 11 #define SkV8Example_Path2DBuilder_DEFINED 12 13 #include <v8.h> 14 15 #include "SkPath.h" 16 #include "SkTypes.h" 17 18 class Global; 19 20 class Path2DBuilder : SkNoncopyable { 21 public: Path2DBuilder()22 Path2DBuilder() : fSkPath() {} ~Path2DBuilder()23 virtual ~Path2DBuilder() {} 24 getSkPath()25 const SkPath& getSkPath() { return fSkPath; } 26 27 // The JS Path2DBuilder constuctor implementation. 28 static void ConstructPath(const v8::FunctionCallbackInfo<v8::Value>& args); 29 30 // Add the Path2DBuilder JS constructor to the global context. 31 static void AddToGlobal(Global* global); 32 33 // Path2DBuilder 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 static void Finalize(const v8::FunctionCallbackInfo<v8::Value>& args); 45 private: 46 SkPath fSkPath; 47 48 static Path2DBuilder* Unwrap(const v8::FunctionCallbackInfo<v8::Value>& args); 49 50 static Global* gGlobal; 51 }; 52 53 #endif 54