diff options
Diffstat (limited to 'experimental/SkV8Example/SkV8Example.h')
-rw-r--r-- | experimental/SkV8Example/SkV8Example.h | 72 |
1 files changed, 3 insertions, 69 deletions
diff --git a/experimental/SkV8Example/SkV8Example.h b/experimental/SkV8Example/SkV8Example.h index 30737963f3..770597f55d 100644 --- a/experimental/SkV8Example/SkV8Example.h +++ b/experimental/SkV8Example/SkV8Example.h @@ -10,20 +10,13 @@ #ifndef SkV8Example_DEFINED #define SkV8Example_DEFINED -#include <v8.h> - #include "SkWindow.h" -#include "SkPaint.h" - -using namespace v8; -class SkCanvas; -class JsCanvas; -class Global; +class JsContext; class SkV8ExampleWindow : public SkOSWindow { public: - SkV8ExampleWindow(void* hwnd, JsCanvas* canvas); + SkV8ExampleWindow(void* hwnd, JsContext* canvas); protected: virtual void onDraw(SkCanvas* canvas) SK_OVERRIDE; @@ -34,66 +27,7 @@ protected: private: typedef SkOSWindow INHERITED; - JsCanvas* fJsCanvas; -}; - - -// Provides the canvas implementation in JS, and the OnDraw() method in C++ -// that's used to bridge from C++ to JS. Should be used in JS as: -// -// function onDraw(canvas) { -// canvas.fillStyle="#FF0000"; -// canvas.fillRect(x, y, w, h); -// } -class JsCanvas { -public: - JsCanvas(Global* global) - : fGlobal(global) - , fCanvas(NULL) - { - fFillStyle.setColor(SK_ColorRED); - } - ~JsCanvas(); - - // Parse the script. - bool initialize(); - - // Call this with the SkCanvas you want onDraw to draw on. - void onDraw(SkCanvas* canvas); - -private: - // Implementation of the canvas.fillStyle field. - static void GetFillStyle(Local<String> name, - const PropertyCallbackInfo<Value>& info); - static void SetFillStyle(Local<String> name, Local<Value> value, - const PropertyCallbackInfo<void>& info); - - // Implementation of the canvas.fillRect() JS function. - static void FillRect(const v8::FunctionCallbackInfo<Value>& args); - - // Get the pointer out of obj. - static JsCanvas* Unwrap(Handle<Object> obj); - - // Create a template for JS object associated with JsCanvas, called lazily - // by Wrap() and the results are stored in fCanvasTemplate; - Handle<ObjectTemplate> makeCanvasTemplate(); - - // Wrap the 'this' pointer into an Object. Can be retrieved via Unwrap. - Handle<Object> wrap(); - - Global* fGlobal; - - // Only valid when inside OnDraw(). - SkCanvas* fCanvas; - - SkPaint fFillStyle; - - // A handle to the onDraw function defined in the script. - Persistent<Function> fOnDraw; - - // The template for what a canvas object looks like. The canvas object is - // what's passed into the JS onDraw() function. - static Persistent<ObjectTemplate> fCanvasTemplate; + JsContext* fJsContext; }; #endif |