diff --git a/tools/quake3/q3map2/image.c b/tools/quake3/q3map2/image.c index b5a56e5c8..d3b43633c 100644 --- a/tools/quake3/q3map2/image.c +++ b/tools/quake3/q3map2/image.c @@ -123,12 +123,11 @@ void PNGReadData( png_struct *png, png_byte *buffer, png_size_t size ){ static void LoadPNGBuffer( byte *buffer, int size, byte **pixels, int *width, int *height ){ png_struct *png; png_info *info, *end; - pngBuffer_t pb; + pngBuffer_t *pb = (pngBuffer_t*) png_get_io_ptr( png ); int i, bitDepth, colorType, channels; png_uint_32 w, h; byte **rowPointers; - /* dummy check */ if ( buffer == NULL || size <= 0 || pixels == NULL || width == NULL || height == NULL ) { return; @@ -167,14 +166,14 @@ static void LoadPNGBuffer( byte *buffer, int size, byte **pixels, int *width, in } /* set read callback */ - pb.buffer = buffer; - pb.size = size; - pb.offset = 0; + pb->buffer = buffer; + pb->size = size; + pb->offset = 0; png_set_read_fn( png, &pb, PNGReadData ); - png->io_ptr = &pb; /* hack! */ + //png->io_ptr = &pb; /* hack! */ /* set error longjmp */ - if ( setjmp( png->jmpbuf ) ) { + if ( setjmp( png_jmpbuf(png) ) ) { Sys_Printf( "WARNING: An error occurred reading PNG image\n" ); png_destroy_read_struct( &png, &info, &end ); return;