src/spriteloader/png.cpp
branchNewGRF_ports
changeset 6872 1c4a4a609f85
parent 6870 ca3fd1fbe311
child 10184 fcf5fb2548eb
equal deleted inserted replaced
6871:5a9dc001e1ad 6872:1c4a4a609f85
     1 /* $Id$ */
     1 /* $Id$ */
     2 
     2 
     3 /** @file grf.cpp */
     3 /** @file png.cpp */
     4 
     4 
     5 #ifdef WITH_PNG
     5 #ifdef WITH_PNG
     6 
     6 
     7 #include "../stdafx.h"
     7 #include "../stdafx.h"
     8 #include "../gfx.h"
     8 #include "../gfx_func.h"
     9 #include "../fileio.h"
     9 #include "../fileio.h"
    10 #include "../variables.h"
       
    11 #include "../debug.h"
    10 #include "../debug.h"
       
    11 #include "../core/alloc_func.hpp"
       
    12 #include "../core/endian_func.hpp"
    12 #include "png.hpp"
    13 #include "png.hpp"
    13 #include <png.h>
    14 #include <png.h>
    14 
    15 
    15 #define PNG_SLOT 62
    16 #define PNG_SLOT 62
    16 
    17 
   142 		pixelsize = sizeof(uint32);
   143 		pixelsize = sizeof(uint32);
   143 	} else {
   144 	} else {
   144 		pixelsize = sizeof(uint8);
   145 		pixelsize = sizeof(uint8);
   145 	}
   146 	}
   146 
   147 
   147 	row_pointer = (png_byte *)malloc(info_ptr->width * pixelsize);
   148 	row_pointer = (png_byte *)MallocT<byte>(info_ptr->width * pixelsize);
   148 	if (row_pointer == NULL) {
   149 	if (row_pointer == NULL) {
   149 		png_destroy_read_struct(&png_ptr, &info_ptr, &end_info);
   150 		png_destroy_read_struct(&png_ptr, &info_ptr, &end_info);
   150 		return false;
   151 		return false;
   151 	}
   152 	}
   152 
   153 
   178 	png_destroy_read_struct(&png_ptr, &info_ptr, &end_info);
   179 	png_destroy_read_struct(&png_ptr, &info_ptr, &end_info);
   179 
   180 
   180 	return true;
   181 	return true;
   181 }
   182 }
   182 
   183 
   183 bool SpriteLoaderPNG::LoadSprite(SpriteLoader::Sprite *sprite, const char *filename, uint8 file_slot, uint32 file_pos)
   184 bool SpriteLoaderPNG::LoadSprite(SpriteLoader::Sprite *sprite, uint8 file_slot, uint32 file_pos)
   184 {
   185 {
       
   186 	const char *filename = FioGetFilename(file_slot);
   185 	if (!LoadPNG(sprite, filename, file_pos, false)) return false;
   187 	if (!LoadPNG(sprite, filename, file_pos, false)) return false;
   186 	if (!LoadPNG(sprite, filename, file_pos, true)) return false;
   188 	if (!LoadPNG(sprite, filename, file_pos, true)) return false;
   187 	return true;
   189 	return true;
   188 }
   190 }
   189 
   191