X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=platforms%2Famiga%2Frtg%2Frtg-output-raylib.c;h=8fd02c7859274e9c29021fbdc4edba2eed6997bc;hb=c4e744d2eda9e866b92e90c0cdc119cdbaf3d122;hp=672eab730b9ba22dd7098f92c5c2283dc4ee3c9c;hpb=c53659d310c3027a71bfbe31661a3337764d9fb8;p=pistorm diff --git a/platforms/amiga/rtg/rtg-output-raylib.c b/platforms/amiga/rtg/rtg-output-raylib.c index 672eab7..8fd02c7 100644 --- a/platforms/amiga/rtg/rtg-output-raylib.c +++ b/platforms/amiga/rtg/rtg-output-raylib.c @@ -15,6 +15,14 @@ #define RTG_INIT_ERR(a) { printf(a); *data->running = 0; } +//#define DEBUG_RAYLIB_RTG + +#ifdef DEBUG_RAYLIB_RTG +#define DEBUG printf +#else +#define DEBUG(...) +#endif + uint8_t busy = 0, rtg_on = 0, rtg_initialized = 0; extern uint8_t *rtg_mem; extern uint32_t framebuffer_addr; @@ -179,13 +187,26 @@ reinit_raylib:; } } } else if (dstscale.width > GetScreenWidth() || dstscale.height > GetScreenHeight()) { - if (dstscale.width > GetScreenWidth()) { - dstscale.height = dstscale.height * ((float)GetScreenWidth() / (float)width); - dstscale.width = GetScreenWidth(); - } if (dstscale.height > GetScreenHeight()) { + DEBUG("[H > SH]\n"); + DEBUG("Adjusted width from %d to", (int)dstscale.width); dstscale.width = dstscale.width * ((float)GetScreenHeight() / (float)height); + DEBUG("%d.\n", (int)dstscale.width); + DEBUG("Adjusted height from %d to", (int)dstscale.height); dstscale.height = GetScreenHeight(); + DEBUG("%d.\n", (int)dstscale.height); + } + if (dstscale.width > GetScreenWidth()) { + // First scaling attempt failed, do not double adjust, re-adjust + dstscale.width = width; + dstscale.height = height; + DEBUG("[W > SW]\n"); + DEBUG("Adjusted height from %d to", (int)dstscale.height); + dstscale.height = dstscale.height * ((float)GetScreenWidth() / (float)width); + DEBUG("%d.\n", (int)dstscale.height); + DEBUG("Adjusted width from %d to", (int)dstscale.width); + dstscale.width = GetScreenWidth(); + DEBUG("%d.\n", (int)dstscale.width); } }