/* create image pixel buffer */
*width = w;
*height = h;
- *pixels = safe_malloc( w * h * 4 );
+ /* initialize with zeros, this memory area may not be entirely rewritten */
+ *pixels = safe_malloc0( w * h * 4 );
/* create row pointers */
rowPointers = safe_malloc( h * sizeof( byte* ) );
/* clean up */
free( rowPointers );
png_destroy_read_struct( &png, &info, &end );
-
}
if ( !WebPGetInfo( buffer, ( size_t) size, &image_width, &image_height ) )
{
- Sys_Printf( "WARNING: An error occurred reading WEBP image info\n" );
+ Sys_FPrintf( SYS_WRN, "WARNING: An error occurred reading WEBP image info\n" );
return;
}
StripExtension( name );
strcat( name, ".dds" );
size = vfsLoadFile( (const char*) name, (void**) &buffer, 0 );
+
+ /* also look for .dds image in dds/ prefix like Doom3 or DarkPlaces */
+ if ( size <= 0 ) {
+ strcpy( name, "dds/" );
+ strcat( name, image->name );
+ StripExtension( name );
+ strcat( name, ".dds" );
+ size = vfsLoadFile( (const char*) name, (void**) &buffer, 0 );
+ }
+
if ( size > 0 ) {
LoadDDSBuffer( buffer, size, &image->pixels, &image->width, &image->height );
goto image_load_success;
image_load_success:
+ /* tell user which image file is found for the given texture path */
+ Sys_FPrintf( SYS_VRB, "Loaded image: \"%s\"\n", name );
+
/* free file buffer */
free( buffer );