1
0
mirror of https://github.com/FunkyFr3sh/cnc-ddraw.git synced 2025-03-15 06:04:49 +01:00

detect common upscaling shaders and disable them if no upscaling is required

This commit is contained in:
FunkyFr3sh 2022-10-31 23:48:33 +01:00
parent 56299662aa
commit a6399216d0

View File

@ -165,6 +165,24 @@ static void ogl_build_programs()
_snprintf(shader_path, sizeof(shader_path) - 1, "%s%s", g_config.game_path, g_ddraw->shader);
}
if (GetFileAttributes(shader_path) != INVALID_FILE_ATTRIBUTES)
{
/* detect common upscaling shaders and disable them if no upscaling is required */
BOOL is_upscaler =
strstr(g_ddraw->shader, "catmull-rom-bilinear.glsl") != NULL ||
strstr(g_ddraw->shader, "lanczos2-sharp.glsl") != NULL ||
strstr(g_ddraw->shader, "xbr-lv2-noblend.glsl") != NULL ||
strstr(g_ddraw->shader, "xbrz-freescale.glsl") != NULL;
if (is_upscaler &&
g_ddraw->render.viewport.width == g_ddraw->width &&
g_ddraw->render.viewport.height == g_ddraw->height)
{
shader_path[0] = 0;
}
}
g_ogl.scale_program = oglu_build_program_from_file(shader_path, wglCreateContextAttribsARB != NULL);
}
else
@ -172,7 +190,7 @@ static void ogl_build_programs()
g_oglu_got_version3 = FALSE;
}
g_ogl.filter_bilinear = strstr(g_ddraw->shader, "bilinear.glsl") != 0;
g_ogl.filter_bilinear = strstr(g_ddraw->shader, "bilinear.glsl") != NULL;
}
if (g_oglu_got_version2 && !g_ogl.main_program)