From Fedora Project Wiki
--- 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 @@ # define OPENVRML_NODE_VRML97_IMAGE_STREAM_LISTENER_H # ifdef OPENVRML_ENABLE_PNG_TEXTURES +extern "C" { # include <png.h> +} # endif # ifdef OPENVRML_ENABLE_JPEG_TEXTURES extern "C" { @@ -81,10 +83,10 @@ png_infop info_ptr); 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<png_byte> old_row; bool gray_palette;