00001 #pragma once
00002
00003 #include "CanvasContext.h"
00004 #include "CanvasLogger.h"
00005
00006 #include "v8.h"
00007
00008 class CanvasContextV8Bindings
00009 {
00010 public:
00011 CanvasContextV8Bindings();
00012 void loadScript(const std::string& _filename, OgreCanvas::CanvasContext* _canvasContext, OgreCanvas::CanvasLogger* _console);
00013 void executeJS(const std::string& _js);
00014 void dispose();
00015 static std::string readScript(const std::string& _filename);
00016
00017 static OgreCanvas::CanvasContext* context2D;
00018 static v8::Persistent<v8::Context> contextV8;
00019 static v8::Persistent<v8::FunctionTemplate> canvasGradientTemplate;
00020 static v8::Persistent<v8::FunctionTemplate> canvasPatternTemplate;
00021 static v8::Persistent<v8::FunctionTemplate> imageTemplate;
00022 static v8::Persistent<v8::FunctionTemplate> consoleTemplate;
00023 };