diff options
Diffstat (limited to '')
-rw-r--r-- | minui/resources.cpp (renamed from minui/resources.c) | 29 |
1 files changed, 17 insertions, 12 deletions
diff --git a/minui/resources.c b/minui/resources.cpp index 886c3255d..fa413b608 100644 --- a/minui/resources.c +++ b/minui/resources.cpp @@ -37,7 +37,8 @@ extern char* locale; #define SURFACE_DATA_ALIGNMENT 8 static gr_surface malloc_surface(size_t data_size) { - unsigned char* temp = malloc(sizeof(GRSurface) + data_size + SURFACE_DATA_ALIGNMENT); + size_t size = sizeof(GRSurface) + data_size + SURFACE_DATA_ALIGNMENT; + unsigned char* temp = reinterpret_cast<unsigned char*>(malloc(size)); if (temp == NULL) return NULL; gr_surface surface = (gr_surface) temp; surface->data = temp + sizeof(GRSurface) + @@ -50,6 +51,8 @@ static int open_png(const char* name, png_structp* png_ptr, png_infop* info_ptr, char resPath[256]; unsigned char header[8]; int result = 0; + int color_type, bit_depth; + size_t bytesRead; snprintf(resPath, sizeof(resPath)-1, "/res/images/%s.png", name); resPath[sizeof(resPath)-1] = '\0'; @@ -59,7 +62,7 @@ static int open_png(const char* name, png_structp* png_ptr, png_infop* info_ptr, goto exit; } - size_t bytesRead = fread(header, 1, sizeof(header), fp); + bytesRead = fread(header, 1, sizeof(header), fp); if (bytesRead != sizeof(header)) { result = -2; goto exit; @@ -91,7 +94,6 @@ static int open_png(const char* name, png_structp* png_ptr, png_infop* info_ptr, png_set_sig_bytes(*png_ptr, sizeof(header)); png_read_info(*png_ptr, *info_ptr); - int color_type, bit_depth; png_get_IHDR(*png_ptr, *info_ptr, width, height, &bit_depth, &color_type, NULL, NULL, NULL); @@ -204,6 +206,8 @@ int res_create_display_surface(const char* name, gr_surface* pSurface) { png_infop info_ptr = NULL; png_uint_32 width, height; png_byte channels; + unsigned char* p_row; + unsigned int y; *pSurface = NULL; @@ -220,8 +224,7 @@ int res_create_display_surface(const char* name, gr_surface* pSurface) { png_set_bgr(png_ptr); #endif - unsigned char* p_row = malloc(width * 4); - unsigned int y; + p_row = reinterpret_cast<unsigned char*>(malloc(width * 4)); for (y = 0; y < height; ++y) { png_read_row(png_ptr, p_row, NULL); transform_rgb_to_draw(p_row, surface->data + y * surface->row_bytes, channels, width); @@ -244,6 +247,10 @@ int res_create_multi_display_surface(const char* name, int* frames, gr_surface** png_uint_32 width, height; png_byte channels; int i; + png_textp text; + int num_text; + unsigned char* p_row; + unsigned int y; *pSurface = NULL; *frames = -1; @@ -252,8 +259,6 @@ int res_create_multi_display_surface(const char* name, int* frames, gr_surface** if (result < 0) return result; *frames = 1; - png_textp text; - int num_text; if (png_get_text(png_ptr, info_ptr, &text, &num_text)) { for (i = 0; i < num_text; ++i) { if (text[i].key && strcmp(text[i].key, "Frames") == 0 && text[i].text) { @@ -270,7 +275,7 @@ int res_create_multi_display_surface(const char* name, int* frames, gr_surface** goto exit; } - surface = malloc(*frames * sizeof(gr_surface)); + surface = reinterpret_cast<gr_surface*>(malloc(*frames * sizeof(gr_surface))); if (surface == NULL) { result = -8; goto exit; @@ -287,8 +292,7 @@ int res_create_multi_display_surface(const char* name, int* frames, gr_surface** png_set_bgr(png_ptr); #endif - unsigned char* p_row = malloc(width * 4); - unsigned int y; + p_row = reinterpret_cast<unsigned char*>(malloc(width * 4)); for (y = 0; y < height; ++y) { png_read_row(png_ptr, p_row, NULL); int frame = y % *frames; @@ -387,6 +391,8 @@ int res_create_localized_alpha_surface(const char* name, png_infop info_ptr = NULL; png_uint_32 width, height; png_byte channels; + unsigned char* row; + png_uint_32 y; *pSurface = NULL; @@ -407,8 +413,7 @@ int res_create_localized_alpha_surface(const char* name, goto exit; } - unsigned char* row = malloc(width); - png_uint_32 y; + row = reinterpret_cast<unsigned char*>(malloc(width)); for (y = 0; y < height; ++y) { png_read_row(png_ptr, row, NULL); int w = (row[1] << 8) | row[0]; |