diff --git a/src/context2d.cc b/src/context2d.cc index e2a2704..2b2efb3 100644 --- a/src/context2d.cc +++ b/src/context2d.cc @@ -100,6 +100,7 @@ Context2d::Initialize(Handle target) { NODE_SET_PROTOTYPE_METHOD(t, "arc", Arc); NODE_SET_PROTOTYPE_METHOD(t, "setFillRGBA", SetFillRGBA); NODE_SET_PROTOTYPE_METHOD(t, "setStrokeRGBA", SetStrokeRGBA); + proto->SetAccessor(String::NewSymbol("globalCompositeOperation"), GetGlobalCompositeOperation, SetGlobalCompositeOperation); proto->SetAccessor(String::NewSymbol("globalAlpha"), GetGlobalAlpha, SetGlobalAlpha); proto->SetAccessor(String::NewSymbol("miterLimit"), GetMiterLimit, SetMiterLimit); proto->SetAccessor(String::NewSymbol("lineWidth"), GetLineWidth, SetLineWidth); @@ -162,6 +163,26 @@ Context2d::SetGlobalAlpha(Local prop, Local val, const AccessorIn context->globalAlpha = val->NumberValue(); } +/* + * Get global composite operation. + */ + +Handle +Context2d::GetGlobalCompositeOperation(Local prop, const AccessorInfo &info) { + Context2d *context = ObjectWrap::Unwrap(info.This()); + return Number::New(context->globalAlpha); +} + +/* + * Set global composite operation. + */ + +void +Context2d::SetGlobalCompositeOperation(Local prop, Local val, const AccessorInfo &info) { + Context2d *context = ObjectWrap::Unwrap(info.This()); + context->globalAlpha = val->NumberValue(); +} + /* * Get miter limit. */ diff --git a/src/context2d.h b/src/context2d.h index b9c3695..e5fc5f9 100644 --- a/src/context2d.h +++ b/src/context2d.h @@ -41,11 +41,13 @@ class Context2d: public node::ObjectWrap { static Handle ClearRect(const Arguments &args); static Handle Rect(const Arguments &args); static Handle Arc(const Arguments &args); + static Handle GetGlobalCompositeOperation(Local prop, const AccessorInfo &info); static Handle GetGlobalAlpha(Local prop, const AccessorInfo &info); static Handle GetMiterLimit(Local prop, const AccessorInfo &info); static Handle GetLineCap(Local prop, const AccessorInfo &info); static Handle GetLineJoin(Local prop, const AccessorInfo &info); static Handle GetLineWidth(Local prop, const AccessorInfo &info); + static void SetGlobalCompositeOperation(Local prop, Local val, const AccessorInfo &info); static void SetGlobalAlpha(Local prop, Local val, const AccessorInfo &info); static void SetMiterLimit(Local prop, Local val, const AccessorInfo &info); static void SetLineCap(Local prop, Local val, const AccessorInfo &info);