Browse Source

tweak styling

v1.x
Tj Holowaychuk 13 years ago
parent
commit
a4ed9c5edd
  1. 4
      src/Canvas.cc
  2. 28
      src/JPEGStream.h

4
src/Canvas.cc

@ -318,9 +318,7 @@ Canvas::StreamJPEGSync(const Arguments &args) {
TryCatch try_catch;
write_to_jpeg_stream(canvas->surface(), args[0]->NumberValue(), args[1]->NumberValue(), &closure);
if (try_catch.HasCaught()) {
return try_catch.ReThrow();
}
if (try_catch.HasCaught()) return try_catch.ReThrow();
return Undefined();
}

28
src/JPEGStream.h

@ -33,9 +33,9 @@ empty_closure_output_buffer(j_compress_ptr cinfo){
Local<Buffer> buf = Buffer::New(dest->bufsize);
memcpy(Buffer::Data(buf->handle_), dest->buffer, dest->bufsize);
Local<Value> argv[3] = {
Local<Value>::New(Null()),
Local<Value>::New(buf->handle_),
Integer::New(dest->bufsize)
Local<Value>::New(Null())
, Local<Value>::New(buf->handle_)
, Integer::New(dest->bufsize)
};
dest->closure->fn->Call(Context::GetCurrent()->Global(), 3, argv);
cinfo->dest->next_output_byte = dest->buffer;
@ -50,18 +50,22 @@ term_closure_destination(j_compress_ptr cinfo){
size_t remaining = dest->bufsize - cinfo->dest->free_in_buffer;
Local<Buffer> buf = Buffer::New(remaining);
memcpy(Buffer::Data(buf->handle_), dest->buffer, remaining);
Local<Value> data_argv[3] = {
Local<Value>::New(Null()),
Local<Value>::New(buf->handle_),
Integer::New(remaining)
Local<Value>::New(Null())
, Local<Value>::New(buf->handle_)
, Integer::New(remaining)
};
dest->closure->fn->Call(Context::GetCurrent()->Global(), 3, data_argv);
/* emit 'end' */
// emit "end"
Local<Value> end_argv[3] = {
Local<Value>::New(Null()),
Local<Value>::New(Null()),
Integer::New(0)
Local<Value>::New(Null())
, Local<Value>::New(Null())
, Integer::New(0)
};
dest->closure->fn->Call(Context::GetCurrent()->Global(), 3, end_argv);
}
@ -94,10 +98,6 @@ jpeg_closure_dest(j_compress_ptr cinfo, closure_t * closure, int bufsize){
void
write_to_jpeg_stream(cairo_surface_t *surface, int bufsize, int quality, closure_t *closure){
/*
libjs code adapted from the Cairo R graphics project:
http://www.rforge.net/Cairo/
*/
int w = cairo_image_surface_get_width(surface);
int h = cairo_image_surface_get_height(surface);
struct jpeg_compress_struct cinfo;

Loading…
Cancel
Save