#ifndef CANVAS_H #define CANVAS_H #include "GRenderContext.h" #include "CanvasRenderingContext2D.h" #include "CanvasGradient.h" #include "ImageData.h" #include "CanvasPattern.h" #include #include namespace NodeBinding { class Canvas : public Napi::ObjectWrap { public: static void Init(Napi::Env env); Canvas(const Napi::CallbackInfo &info); virtual ~Canvas(); static Napi::Object NewInstance(Napi::Env env, Napi::Value arg, Napi::Value arg2); Napi::ObjectReference mRef; int getWidth(); int getHeight(); std::shared_ptr mRenderContext; private: static Napi::FunctionReference constructor; Napi::Value getWidth(const Napi::CallbackInfo &info); Napi::Value getHeight(const Napi::CallbackInfo &info); Napi::Value getContext(const Napi::CallbackInfo &info); Napi::ObjectReference context2dRef; void setWidth(const Napi::CallbackInfo &info, const Napi::Value &value); void setHeight(const Napi::CallbackInfo &info, const Napi::Value &value); void createPNG(const Napi::CallbackInfo &info); void createJPEG(const Napi::CallbackInfo &info); int mWidth = 0; int mHeight = 0; }; } // namespace NodeBinding #endif