OpenvrmlLibpngPatch

--- src/node/vrml97/image_stream_listener.cpp  2010-05-28 17:18:15.000000000 +0200 +++ src/node/vrml97/image_stream_listener.cpp  2012-02-20 17:14:54.272388043 +0100 @@ -136,7 +136,7 @@

png_read_update_info(png_ptr, info_ptr);

-   reader.old_row.resize(png_ptr->rowbytes); +   reader.old_row.resize(png_get_rowbytes(png_ptr, info_ptr)); }

void openvrml_png_row_callback(png_structp png_ptr, @@ -166,8 +166,8 @@    // openvrml::image pixels start at the bottom left.     //     const size_t image_row = (image.y - 1) - row_num; -    const size_t bytes_per_row = png_ptr->rowbytes; -    const size_t image_width = png_ptr->width; +    const size_t bytes_per_row = png_get_rowbytes(png_ptr, reader.info_ptr_); +    const size_t image_width = png_get_image_width(png_ptr, reader.info_ptr_);     for (size_t pixel_index = 0, byte_index = 0; pixel_index < image_width; ++pixel_index) {        using openvrml::int32; --- src/node/vrml97/image_stream_listener.h     2009-07-04 23:20:09.000000000 +0200 +++ src/node/vrml97/image_stream_listener.h     2012-02-20 17:23:09.902343267 +0100 @@ -22,7 +22,9 @@
 * 1)   define OPENVRML_NODE_VRML97_IMAGE_STREAM_LISTENER_H

+extern "C" { +} extern "C" { @@ -81,10 +83,10 @@                                                  png_infop info_ptr);
 * 1) ifdef OPENVRML_ENABLE_PNG_TEXTURES
 * 1)   include 
 * 1) endif
 * 2) ifdef OPENVRML_ENABLE_JPEG_TEXTURES

class png_reader : public image_reader { -           png_structp png_ptr_; -           png_infop info_ptr_;

public: +           png_structp png_ptr_; +           png_infop info_ptr_; image_stream_listener & stream_listener; std::vector old_row; bool gray_palette;