Browse Source

Added globalAlpha to canvas_state_t

v1.x
Tj Holowaychuk 15 years ago
parent
commit
b94e9e7bbd
  1. 8
      src/context2d.cc
  2. 2
      src/context2d.h

8
src/context2d.cc

@ -43,7 +43,7 @@ using namespace node;
, _.r \
, _.g \
, _.b \
, context->globalAlpha == -1 ? _.a : context->globalAlpha);
, context->state->globalAlpha == -1 ? _.a : context->state->globalAlpha);
/*
* Rectangle arg assertions.
@ -133,8 +133,8 @@ Context2d::Context2d(Canvas *canvas): ObjectWrap() {
_context = cairo_create(canvas->getSurface());
cairo_set_line_width(_context, 1);
shadowBlur = shadowOffsetX = shadowOffsetY = 0;
globalAlpha = -1;
state = states[stateno = 0] = (canvas_state_t *) malloc(sizeof(canvas_state_t));
state->globalAlpha = -1;
state->fillPattern = state->strokePattern = NULL;
RGBA(state->fill,0,0,0,1);
RGBA(state->stroke,0,0,0,1);
@ -177,7 +177,7 @@ Context2d::restoreState() {
Handle<Value>
Context2d::GetGlobalAlpha(Local<String> prop, const AccessorInfo &info) {
Context2d *context = ObjectWrap::Unwrap<Context2d>(info.This());
return Number::New(context->globalAlpha);
return Number::New(context->state->globalAlpha);
}
/*
@ -189,7 +189,7 @@ Context2d::SetGlobalAlpha(Local<String> prop, Local<Value> val, const AccessorIn
double n = val->NumberValue();
if (n >= 0 && n <= 1) {
Context2d *context = ObjectWrap::Unwrap<Context2d>(info.This());
context->globalAlpha = n;
context->state->globalAlpha = n;
}
}

2
src/context2d.h

@ -31,6 +31,7 @@ typedef struct {
rgba_t stroke;
cairo_pattern_t *fillPattern;
cairo_pattern_t *strokePattern;
float globalAlpha;
} canvas_state_t;
class Context2d: public node::ObjectWrap {
@ -42,7 +43,6 @@ class Context2d: public node::ObjectWrap {
double shadowBlur;
double shadowOffsetX;
double shadowOffsetY;
float globalAlpha;
static void Initialize(Handle<Object> target);
static Handle<Value> New(const Arguments &args);
static Handle<Value> Save(const Arguments &args);

Loading…
Cancel
Save