From fb005d8711c6bb5eef8bf200a67e4e6503dd7d79 Mon Sep 17 00:00:00 2001 From: notaz Date: Mon, 10 Oct 2011 01:19:06 +0300 Subject: [PATCH] frontend: fix integer-prefer scaler --- frontend/menu.c | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/frontend/menu.c b/frontend/menu.c index 931468fa..83ad1c4a 100644 --- a/frontend/menu.c +++ b/frontend/menu.c @@ -2009,16 +2009,10 @@ void menu_notify_mode_change(int w, int h, int bpp) g_layer_w = w; g_layer_h = h; break; - case SCALE_4_3: - mult = 240.0f / (float)h * 4.0f / 3.0f; - if (h > 256) - mult *= 2.0f; - g_layer_w = mult * (float)g_menuscreen_h; - g_layer_h = g_menuscreen_h; - printf(" -> %dx%d %.1f\n", g_layer_w, g_layer_h, mult); - break; - case SCALE_4_3v2: + if (h > g_menuscreen_h || (240 < h && h <= 360)) + goto fractional_4_3; + // 4:3 that prefers integer scaling imult = g_menuscreen_h / h; g_layer_w = w * imult; @@ -2029,6 +2023,16 @@ void menu_notify_mode_change(int w, int h, int bpp) printf(" -> %dx%d %.1f\n", g_layer_w, g_layer_h, mult); break; + fractional_4_3: + case SCALE_4_3: + mult = 240.0f / (float)h * 4.0f / 3.0f; + if (h > 256) + mult *= 2.0f; + g_layer_w = mult * (float)g_menuscreen_h; + g_layer_h = g_menuscreen_h; + printf(" -> %dx%d %.1f\n", g_layer_w, g_layer_h, mult); + break; + case SCALE_FULLSCREEN: g_layer_w = g_menuscreen_w; g_layer_h = g_menuscreen_h; -- 2.39.5