// // ImageData.cc // // Copyright (c) 2010 LearnBoost // #include "ImageData.h" Persistent ImageData::constructor; /* * Initialize ImageData. */ void ImageData::Initialize(Handle target) { NanScope(); // Constructor Local ctor = NanNew(ImageData::New); NanAssignPersistent(constructor, ctor); ctor->InstanceTemplate()->SetInternalFieldCount(1); ctor->SetClassName(NanNew("ImageData")); // Prototype Local proto = ctor->PrototypeTemplate(); proto->SetAccessor(NanNew("width"), GetWidth); proto->SetAccessor(NanNew("height"), GetHeight); target->Set(NanNew("ImageData"), ctor->GetFunction()); } /* * Initialize a new ImageData object. */ NAN_METHOD(ImageData::New) { NanScope(); Local obj = args[0]->ToObject(); if (!NanHasInstance(PixelArray::constructor, obj)) return NanThrowTypeError("CanvasPixelArray expected"); PixelArray *arr = ObjectWrap::Unwrap(obj); ImageData *imageData = new ImageData(arr); args.This()->Set(NanNew("data"), args[0]); imageData->Wrap(args.This()); NanReturnValue(args.This()); } /* * Get width. */ NAN_GETTER(ImageData::GetWidth) { NanScope(); ImageData *imageData = ObjectWrap::Unwrap(args.This()); NanReturnValue(NanNew(imageData->pixelArray()->width())); } /* * Get height. */ NAN_GETTER(ImageData::GetHeight) { NanScope(); ImageData *imageData = ObjectWrap::Unwrap(args.This()); NanReturnValue(NanNew(imageData->pixelArray()->height())); }