// // canvas.h // // Copyright (c) 2010 LearnBoost // #ifndef __NODE_CANVAS_H__ #define __NODE_CANVAS_H__ #include #include #include #include /* * RGBA arg assertions. */ #define RGBA_ARGS(N) \ if (!args[N]->IsNumber()) \ return ThrowException(Exception::TypeError(String::New("r required"))); \ if (!args[N+1]->IsNumber()) \ return ThrowException(Exception::TypeError(String::New("g required"))); \ if (!args[N+2]->IsNumber()) \ return ThrowException(Exception::TypeError(String::New("b required"))); \ if (!args[N+3]->IsNumber()) \ return ThrowException(Exception::TypeError(String::New("alpha required"))); \ float r = args[N]->Int32Value(); \ float g = args[N+1]->Int32Value(); \ float b = args[N+2]->Int32Value(); \ float a = args[N+3]->NumberValue(); using namespace v8; class Canvas: public node::ObjectWrap { public: static void Initialize(Handle target); static Handle New(const Arguments &args); static Handle SavePNG(const Arguments &args); inline cairo_surface_t *getSurface(){ return _surface; } Canvas(int width, int height); private: ~Canvas(); cairo_surface_t *_surface; }; #endif