Browse Source

Added Canvas::Error()

v1.x
Tj Holowaychuk 14 years ago
parent
commit
8204bbefa8
  1. 15
      src/canvas.cc
  2. 1
      src/canvas.h

15
src/canvas.cc

@ -86,10 +86,8 @@ Canvas::StreamPNG(const Arguments &args) {
Canvas *canvas = ObjectWrap::Unwrap<Canvas>(args.This()); Canvas *canvas = ObjectWrap::Unwrap<Canvas>(args.This());
closure_t closure; closure_t closure;
closure.fn = Handle<Function>::Cast(args[0]); closure.fn = Handle<Function>::Cast(args[0]);
cairo_surface_write_to_png_stream(canvas->getSurface(), writeToBuffer, &closure); cairo_status_t status = cairo_surface_write_to_png_stream(canvas->getSurface(), writeToBuffer, &closure);
Handle<Value> argv[2]; Handle<Value> argv[2] = { Null(), Integer::New(0) };
argv[0] = Null();
argv[1] = Integer::New(0);
closure.fn->Call(Context::GetCurrent()->Global(), 2, argv); closure.fn->Call(Context::GetCurrent()->Global(), 2, argv);
return Undefined(); return Undefined();
} }
@ -110,6 +108,15 @@ Canvas::~Canvas() {
cairo_surface_destroy(_surface); cairo_surface_destroy(_surface);
} }
/*
* Construct an Error from the given cairo status.
*/
Handle<Value>
Canvas::Error(cairo_status_t status) {
return Exception::Error(String::New(cairo_status_to_string(status)));
}
/* /*
* Save a PNG at the given path. * Save a PNG at the given path.
*/ */

1
src/canvas.h

@ -52,6 +52,7 @@ class Canvas: public node::ObjectWrap {
static Handle<Value> New(const Arguments &args); static Handle<Value> New(const Arguments &args);
static Handle<Value> SavePNG(const Arguments &args); static Handle<Value> SavePNG(const Arguments &args);
static Handle<Value> StreamPNG(const Arguments &args); static Handle<Value> StreamPNG(const Arguments &args);
static Handle<Value> Error(cairo_status_t status);
inline cairo_surface_t *getSurface(){ return _surface; } inline cairo_surface_t *getSurface(){ return _surface; }
static void blur(cairo_surface_t *surface, int radius); static void blur(cairo_surface_t *surface, int radius);
Canvas(int width, int height); Canvas(int width, int height);

Loading…
Cancel
Save