GBA: Do not put decoded image on the stack

This commit is contained in:
Jeffrey Pfau 2014-11-27 11:18:22 -08:00
parent 55ba676d7c
commit 97931784e7
1 changed files with 4 additions and 2 deletions

View File

@ -153,15 +153,17 @@ static bool _loadPNGState(struct GBA* gba, struct VFile* vf) {
PNGReadClose(png, info, end); PNGReadClose(png, info, end);
return false; return false;
} }
uint32_t pixels[VIDEO_HORIZONTAL_PIXELS * VIDEO_VERTICAL_PIXELS * 4]; uint32_t* pixels = malloc(VIDEO_HORIZONTAL_PIXELS * VIDEO_VERTICAL_PIXELS * 4);
PNGInstallChunkHandler(png, gba, _loadPNGChunkHandler, "gbAs"); PNGInstallChunkHandler(png, gba, _loadPNGChunkHandler, "gbAs");
PNGReadHeader(png, info); PNGReadHeader(png, info);
PNGReadPixels(png, info, &pixels, VIDEO_HORIZONTAL_PIXELS, VIDEO_VERTICAL_PIXELS, VIDEO_HORIZONTAL_PIXELS); PNGReadPixels(png, info, pixels, VIDEO_HORIZONTAL_PIXELS, VIDEO_VERTICAL_PIXELS, VIDEO_HORIZONTAL_PIXELS);
PNGReadFooter(png, end); PNGReadFooter(png, end);
PNGReadClose(png, info, end); PNGReadClose(png, info, end);
gba->video.renderer->putPixels(gba->video.renderer, VIDEO_HORIZONTAL_PIXELS, pixels); gba->video.renderer->putPixels(gba->video.renderer, VIDEO_HORIZONTAL_PIXELS, pixels);
GBASyncPostFrame(gba->sync); GBASyncPostFrame(gba->sync);
free(pixels);
return true; return true;
} }
#endif #endif