Browse Source

Added CanvasRenderingContext2d#patternQuality accessor (non-standard)

v1.x
Tj Holowaychuk 14 years ago
parent
commit
ca5a58908f
  1. 35
      src/CanvasRenderingContext2d.cc
  2. 2
      src/CanvasRenderingContext2d.h

35
src/CanvasRenderingContext2d.cc

@ -94,6 +94,7 @@ Context2d::Initialize(Handle<Object> target) {
NODE_SET_PROTOTYPE_METHOD(constructor, "setStrokeColor", SetStrokeColor);
NODE_SET_PROTOTYPE_METHOD(constructor, "setFillPattern", SetFillPattern);
NODE_SET_PROTOTYPE_METHOD(constructor, "setStrokePattern", SetStrokePattern);
proto->SetAccessor(String::NewSymbol("patternQuality"), GetPatternQuality, SetPatternQuality);
proto->SetAccessor(String::NewSymbol("globalCompositeOperation"), GetGlobalCompositeOperation, SetGlobalCompositeOperation);
proto->SetAccessor(String::NewSymbol("globalAlpha"), GetGlobalAlpha, SetGlobalAlpha);
proto->SetAccessor(String::NewSymbol("shadowColor"), GetShadowColor, SetShadowColor);
@ -661,6 +662,40 @@ Context2d::GetGlobalCompositeOperation(Local<String> prop, const AccessorInfo &i
}
}
/*
* Set pattern quality.
*/
void
Context2d::SetPatternQuality(Local<String> prop, Local<Value> val, const AccessorInfo &info) {
Context2d *context = ObjectWrap::Unwrap<Context2d>(info.This());
String::AsciiValue quality(val->ToString());
if (0 == strcmp("fast", *quality)) {
context->state->patternQuality = CAIRO_FILTER_FAST;
} else if (0 == strcmp("good", *quality)) {
context->state->patternQuality = CAIRO_FILTER_GOOD;
} else if (0 == strcmp("best", *quality)) {
context->state->patternQuality = CAIRO_FILTER_BEST;
}
}
/*
* Get pattern quality.
*/
Handle<Value>
Context2d::GetPatternQuality(Local<String> prop, const AccessorInfo &info) {
Context2d *context = ObjectWrap::Unwrap<Context2d>(info.This());
switch (context->state->patternQuality) {
case CAIRO_FILTER_FAST:
return String::New("fast");
case CAIRO_FILTER_BEST:
return String::New("best");
default:
return String::New("good");
}
}
/*
* Set global composite operation.
*/

2
src/CanvasRenderingContext2d.h

@ -78,6 +78,7 @@ class Context2d: public node::ObjectWrap {
static Handle<Value> Rect(const Arguments &args);
static Handle<Value> Arc(const Arguments &args);
static Handle<Value> ArcTo(const Arguments &args);
static Handle<Value> GetPatternQuality(Local<String> prop, const AccessorInfo &info);
static Handle<Value> GetGlobalCompositeOperation(Local<String> prop, const AccessorInfo &info);
static Handle<Value> GetGlobalAlpha(Local<String> prop, const AccessorInfo &info);
static Handle<Value> GetShadowColor(Local<String> prop, const AccessorInfo &info);
@ -91,6 +92,7 @@ class Context2d: public node::ObjectWrap {
static Handle<Value> GetShadowOffsetY(Local<String> prop, const AccessorInfo &info);
static Handle<Value> GetShadowBlur(Local<String> prop, const AccessorInfo &info);
static Handle<Value> GetAntiAlias(Local<String> prop, const AccessorInfo &info);
static void SetPatternQuality(Local<String> prop, Local<Value> val, const AccessorInfo &info);
static void SetGlobalCompositeOperation(Local<String> prop, Local<Value> val, const AccessorInfo &info);
static void SetGlobalAlpha(Local<String> prop, Local<Value> val, const AccessorInfo &info);
static void SetShadowColor(Local<String> prop, Local<Value> val, const AccessorInfo &info);

Loading…
Cancel
Save