// // ImageData.cc // // Copyright (c) 2010 LearnBoost // #include "ImageData.h" /* * Initialize ImageData. */ void ImageData::Initialize(Handle target) { HandleScope scope; Local t = FunctionTemplate::New(ImageData::New); t->InstanceTemplate()->SetInternalFieldCount(1); t->SetClassName(String::NewSymbol("ImageData")); // Prototype Local proto = t->PrototypeTemplate(); proto->SetAccessor(String::NewSymbol("width"), GetWidth); proto->SetAccessor(String::NewSymbol("height"), GetHeight); target->Set(String::NewSymbol("ImageData"), t->GetFunction()); } /* * Initialize a new ImageData object. */ Handle ImageData::New(const Arguments &args) { HandleScope scope; // TODO: arg assertions PixelArray *arr = ObjectWrap::Unwrap(args[0]->ToObject()); ImageData *imageData = new ImageData(arr); args.This()->Set(String::NewSymbol("data"), args[0]); imageData->Wrap(args.This()); return args.This(); } /* * Get width. */ Handle ImageData::GetWidth(Local prop, const AccessorInfo &info) { ImageData *imageData = ObjectWrap::Unwrap(info.This()); return Number::New(imageData->pixelArray()->width()); } /* * Get height. */ Handle ImageData::GetHeight(Local prop, const AccessorInfo &info) { ImageData *imageData = ObjectWrap::Unwrap(info.This()); return Number::New(imageData->pixelArray()->height()); }