Browse Source

Conditional JPEG support

v1.x
Tj Holowaychuk 14 years ago
parent
commit
3d916d03a0
  1. 6
      src/Image.cc
  2. 2
      src/Image.h
  3. 5
      wscript

6
src/Image.cc

@ -274,7 +274,9 @@ cairo_status_t
Image::loadSurface() { Image::loadSurface() {
switch (extension(filename)) { switch (extension(filename)) {
case Image::PNG: return loadPNG(); case Image::PNG: return loadPNG();
#ifdef HAVE_JPEG
case Image::JPEG: return loadJPEG(); case Image::JPEG: return loadJPEG();
#endif
} }
return CAIRO_STATUS_READ_ERROR; return CAIRO_STATUS_READ_ERROR;
} }
@ -291,6 +293,8 @@ Image::loadPNG() {
return cairo_surface_status(_surface); return cairo_surface_status(_surface);
} }
#ifdef HAVE_JPEG
/* /*
* Load JPEG, convert RGB to ARGB. * Load JPEG, convert RGB to ARGB.
*/ */
@ -349,6 +353,8 @@ Image::loadJPEG() {
return cairo_surface_status(_surface); return cairo_surface_status(_surface);
} }
#endif
/* /*
* Return UNKNOWN, JPEG, or PNG based on the filename. * Return UNKNOWN, JPEG, or PNG based on the filename.
*/ */

2
src/Image.h

@ -33,7 +33,9 @@ class Image: public node::ObjectWrap {
inline int stride(){ return cairo_image_surface_get_stride(_surface); } inline int stride(){ return cairo_image_surface_get_stride(_surface); }
cairo_status_t loadSurface(); cairo_status_t loadSurface();
cairo_status_t loadPNG(); cairo_status_t loadPNG();
#ifdef HAVE_JPEG
cairo_status_t loadJPEG(); cairo_status_t loadJPEG();
#endif
void error(Local<Value>); void error(Local<Value>);
void loadSync(); void loadSync();
void loaded(); void loaded();

5
wscript

@ -11,8 +11,9 @@ def configure(conf):
conf.check_tool('compiler_cxx') conf.check_tool('compiler_cxx')
conf.check_tool('node_addon') conf.check_tool('node_addon')
conf.env.append_value('CPPFLAGS', '-DNDEBUG') conf.env.append_value('CPPFLAGS', '-DNDEBUG')
conf.check(lib='jpeg', uselib_store='JPEG') if conf.check(lib='jpeg', uselib_store='JPEG', mandatory=False):
conf.check_cfg(package='cairo', mandatory=1, args='--cflags --libs') conf.env.append_value('CPPFLAGS', '-DHAVE_JPEG=1')
conf.check_cfg(package='cairo', args='--cflags --libs', mandatory=True)
flags = ['-O3', '-Wall'] flags = ['-O3', '-Wall']
conf.env.append_value('CCFLAGS', flags) conf.env.append_value('CCFLAGS', flags)
conf.env.append_value('CXXFLAGS', flags) conf.env.append_value('CXXFLAGS', flags)

Loading…
Cancel
Save