From: <br...@us...> - 2012-04-23 07:37:14
|
Revision: 4249 http://openvrml.svn.sourceforge.net/openvrml/?rev=4249&view=rev Author: braden Date: 2012-04-23 07:37:06 +0000 (Mon, 23 Apr 2012) Log Message: ----------- libpng 1.5 removes direct access to struct members; use accessor functions instead. Modified Paths: -------------- trunk/ChangeLog trunk/src/node/vrml97/image_stream_listener.cpp trunk/src/node/vrml97/image_stream_listener.h Modified: trunk/ChangeLog =================================================================== --- trunk/ChangeLog 2012-04-23 06:47:59 UTC (rev 4248) +++ trunk/ChangeLog 2012-04-23 07:37:06 UTC (rev 4249) @@ -1,7 +1,15 @@ +2012-04-23 Tom Callaway <tca...@re...> + + libpng 1.5 removes direct access to struct members; use accessor + functions instead. + + * src/node/vrml97/image_stream_listener.cpp + * src/node/vrml97/image_stream_listener.h + 2012-04-23 Braden McDaniel <br...@en...> - NP[P]_GetMIMEDescription returns const char * in recent variations of - NPAPI. + NP[P]_GetMIMEDescription returns const char * in recent variations + of NPAPI. * configure.ac * src/mozilla-plugin/openvrml.cpp Modified: trunk/src/node/vrml97/image_stream_listener.cpp =================================================================== --- trunk/src/node/vrml97/image_stream_listener.cpp 2012-04-23 06:47:59 UTC (rev 4248) +++ trunk/src/node/vrml97/image_stream_listener.cpp 2012-04-23 07:37:06 UTC (rev 4249) @@ -136,7 +136,9 @@ png_read_update_info(png_ptr, info_ptr); - reader.old_row.resize(png_ptr->rowbytes); + reader.width = png_get_image_width(png_ptr, info_ptr); + reader.rowbytes = png_get_rowbytes(png_ptr, info_ptr); + reader.old_row.resize(reader.rowbytes); } void openvrml_png_row_callback(png_structp png_ptr, @@ -166,9 +168,7 @@ // 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; - for (size_t pixel_index = 0, byte_index = 0; pixel_index < image_width; + for (size_t pixel_index = 0, byte_index = 0; pixel_index < reader.width; ++pixel_index) { using openvrml::int32; int32 pixel = 0x00000000; @@ -188,14 +188,14 @@ ++byte_index; } } - image.pixel(image_row * image_width + pixel_index, pixel); + image.pixel(image_row * reader.width + pixel_index, pixel); } reader.stream_listener.node_.modified(true); - assert(reader.old_row.size() >= bytes_per_row); + assert(reader.old_row.size() >= reader.rowbytes); - copy(new_row, new_row + bytes_per_row, reader.old_row.begin()); + copy(new_row, new_row + reader.rowbytes, reader.old_row.begin()); } void openvrml_png_end_callback(png_structp, png_infop) Modified: trunk/src/node/vrml97/image_stream_listener.h =================================================================== --- trunk/src/node/vrml97/image_stream_listener.h 2012-04-23 06:47:59 UTC (rev 4248) +++ trunk/src/node/vrml97/image_stream_listener.h 2012-04-23 07:37:06 UTC (rev 4249) @@ -88,6 +88,8 @@ image_stream_listener & stream_listener; std::vector<png_byte> old_row; bool gray_palette; + png_uint_32 width; + png_size_t rowbytes; explicit png_reader(image_stream_listener & stream_listener); virtual ~png_reader() OPENVRML_NOTHROW; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |