Browse Source

Added pushState()

v1.x
Tj Holowaychuk 14 years ago
parent
commit
f46bdf5d5c
  1. 13
      src/context2d.cc
  2. 2
      src/context2d.h

13
src/context2d.cc

@ -132,12 +132,9 @@ Context2d::Context2d(Canvas *canvas): ObjectWrap() {
_canvas = canvas;
_context = cairo_create(canvas->getSurface());
cairo_set_line_width(_context, 1);
state = (canvas_state_t *) malloc(sizeof(canvas_state_t));
state->fillPattern = state->strokePattern = NULL;
shadowBlur = shadowOffsetX = shadowOffsetY = 0;
globalAlpha = -1;
RGBA(state->fill,0,0,0,1);
RGBA(state->stroke,0,0,0,1);
pushState();
}
/*
@ -148,6 +145,14 @@ Context2d::~Context2d() {
cairo_destroy(_context);
}
void
Context2d::pushState() {
states[stateno = 0] = state = (canvas_state_t *) malloc(sizeof(canvas_state_t));
state->fillPattern = state->strokePattern = NULL;
RGBA(state->fill,0,0,0,1);
RGBA(state->stroke,0,0,0,1);
}
/*
* Get global alpha.
*/

2
src/context2d.h

@ -33,6 +33,7 @@ typedef struct {
class Context2d: public node::ObjectWrap {
public:
// TODO: resize
short stateno;
canvas_state_t *states[64];
canvas_state_t *state;
rgba_t shadow;
@ -89,6 +90,7 @@ class Context2d: public node::ObjectWrap {
static void SetShadowBlur(Local<String> prop, Local<Value> val, const AccessorInfo &info);
inline cairo_t *getContext(){ return _context; }
inline Canvas *getCanvas(){ return _canvas; }
void pushState();
protected:
Context2d(Canvas *canvas);

Loading…
Cancel
Save