all repos — mgba @ bd5b3036a12c40569ec4a9897437a041fa267c10

mGBA Game Boy Advance Emulator

Core: Migrate extdata to core
Jeffrey Pfau jeffrey@endrift.com
Sat, 28 May 2016 16:25:01 -0700
commit

bd5b3036a12c40569ec4a9897437a041fa267c10

parent

36ea5ea89c86b97c03729ecbc67725fba47f55a6

1 files changed, 8 insertions(+), 3 deletions(-)

jump to
M src/feature/gui/gui-runner.csrc/feature/gui/gui-runner.c

@@ -8,6 +8,7 @@

#include "core/core.h" #include "core/serialize.h" #include "feature/gui/gui-config.h" +#include "gba/gba.h" #include "gba/input.h" #include "gba/interface.h" #include "util/gui/file-select.h"

@@ -64,9 +65,11 @@ gbaBackground->p->drawScreenshot(gbaBackground->p, gbaBackground->screenshot, true);

return; } struct VFile* vf = mCoreGetState(gbaBackground->p->core, stateId, false); + unsigned w, h; + gbaBackground->p->core->desiredVideoDimensions(gbaBackground->p->core, &w, &h); uint32_t* pixels = gbaBackground->screenshot; if (!pixels) { - pixels = anonymousMemoryMap(VIDEO_HORIZONTAL_PIXELS * VIDEO_VERTICAL_PIXELS * 4); + pixels = anonymousMemoryMap(w * h * 4); gbaBackground->screenshot = pixels; } bool success = false;

@@ -76,7 +79,7 @@ png_infop info = png_create_info_struct(png);

png_infop end = png_create_info_struct(png); if (png && info && end) { success = PNGReadHeader(png, info); - success = success && PNGReadPixels(png, info, pixels, VIDEO_HORIZONTAL_PIXELS, VIDEO_VERTICAL_PIXELS, VIDEO_HORIZONTAL_PIXELS); + success = success && PNGReadPixels(png, info, pixels, w, h, w); success = success && PNGReadFooter(png, end); } PNGReadClose(png, info, end);

@@ -376,7 +379,9 @@ }

runner->core->unloadROM(runner->core); drawState.screenshotId = 0; if (drawState.screenshot) { - mappedMemoryFree(drawState.screenshot, VIDEO_HORIZONTAL_PIXELS * VIDEO_VERTICAL_PIXELS * 4); + unsigned w, h; + runner->core->desiredVideoDimensions(runner->core, &w, &h); + mappedMemoryFree(drawState.screenshot, w * h * 4); } if (runner->core->config.port) {