Browse Source

Misc refactoring

v1.x
Tj Holowaychuk 14 years ago
parent
commit
dc43ce8be7
  1. 48
      src/CanvasRenderingContext2d.cc

48
src/CanvasRenderingContext2d.cc

@ -191,6 +191,27 @@ Context2d::restoreState() {
state = states[--stateno];
}
/*
* Save flat path.
*/
void
Context2d::savePath() {
cairo_save(_context);
_path = cairo_copy_path_flat(_context);
cairo_new_path(_context);
}
/*
* Restore flat path.
*/
void
Context2d::restorePath() {
cairo_restore(_context);
cairo_append_path(_context, _path);
}
/*
* Get global alpha.
*/
@ -787,19 +808,11 @@ Context2d::FillText(const Arguments &args) {
Context2d *context = ObjectWrap::Unwrap<Context2d>(args.This());
cairo_t *ctx = context->getContext();
// Save path
cairo_save(ctx);
cairo_path_t *path = cairo_copy_path_flat(ctx);
cairo_new_path(ctx);
// Text path
context->savePath();
context->setTextPath(*str, x, y);
SET_SOURCE(context->state->fill);
cairo_fill(ctx);
// Restore path
cairo_restore(ctx);
cairo_append_path(ctx, path);
context->restorePath();
return Undefined();
}
@ -832,18 +845,9 @@ Context2d::StrokeText(const Arguments &args) {
return Undefined();
}
void
Context2d::savePath() {
cairo_save(_context);
_path = cairo_copy_path_flat(_context);
cairo_new_path(_context);
}
void
Context2d::restorePath() {
cairo_restore(_context);
cairo_append_path(_context, _path);
}
/*
* Set text path for the given string at (x, y).
*/
void
Context2d::setTextPath(const char *str, double x, double y) {

Loading…
Cancel
Save