From e7b4d225d43e658f71ed5b5f1b4cf80d2331bec4 Mon Sep 17 00:00:00 2001 From: Toni Wilen Date: Mon, 12 May 2025 20:45:44 +0300 Subject: [PATCH] Default filter mode auto-adjustment to selected overscan mode. --- od-win32/win32_scaler.cpp | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/od-win32/win32_scaler.cpp b/od-win32/win32_scaler.cpp index d86f4e55..1a8ea692 100644 --- a/od-win32/win32_scaler.cpp +++ b/od-win32/win32_scaler.cpp @@ -316,10 +316,23 @@ void getfilterdata(int monid, struct displayscale *ds) ch = avidinfo->drawbuffer.inheight; cv = 1; if (scalemode == AUTOSCALE_STATIC_NOMINAL) { // || scalemode == AUTOSCALE_INTEGER)) { - cx = 28 << currprefs.gfx_resolution; - cy = 10 << currprefs.gfx_vresolution; - cw -= 40 << currprefs.gfx_resolution; - ch -= 20 << currprefs.gfx_vresolution; + if (currprefs.gfx_overscanmode < OVERSCANMODE_ULTRA) { + cx = 28 << currprefs.gfx_resolution; + cy = 10 << currprefs.gfx_vresolution; + cw -= 40 << currprefs.gfx_resolution; + ch -= 20 << currprefs.gfx_vresolution; + if (currprefs.gfx_overscanmode == OVERSCANMODE_BROADCAST) { + cx -= 4 << currprefs.gfx_resolution; + cy -= 2 << currprefs.gfx_vresolution; + cw += 8 << currprefs.gfx_resolution; + ch += 4 << currprefs.gfx_vresolution; + } else if (currprefs.gfx_overscanmode == OVERSCANMODE_EXTREME) { + cx -= 7 << currprefs.gfx_resolution; + cy -= 10 << currprefs.gfx_vresolution; + cw += 14 << currprefs.gfx_resolution; + ch += 20 << currprefs.gfx_vresolution; + } + } } if (scalemode != AUTOSCALE_INTEGER && scalemode != AUTOSCALE_INTEGER_AUTOSCALE) { set_custom_limits (cw, ch, cx, cy, true); -- 2.47.3