// // ImageData.cc // // Copyright (c) 2010 LearnBoost // #include "ImageData.h" Persistent ImageData::constructor; /* * Initialize ImageData. */ void ImageData::Initialize(Handle target) { HandleScope scope; // Constructor constructor = Persistent::New(FunctionTemplate::New(ImageData::New)); constructor->InstanceTemplate()->SetInternalFieldCount(1); constructor->SetClassName(String::NewSymbol("ImageData")); // Prototype Local proto = constructor->PrototypeTemplate(); proto->SetAccessor(String::NewSymbol("width"), GetWidth); proto->SetAccessor(String::NewSymbol("height"), GetHeight); target->Set(String::NewSymbol("ImageData"), constructor->GetFunction()); } /* * Initialize a new ImageData object. */ Handle ImageData::New(const Arguments &args) { HandleScope scope; Local obj = args[0]->ToObject(); if (!PixelArray::constructor->HasInstance(obj)) return ThrowException(Exception::TypeError(String::New("CanvasPixelArray expected"))); PixelArray *arr = ObjectWrap::Unwrap(obj); 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()); }