diff --git a/src/render/SDL_render.c b/src/render/SDL_render.c index ef1c4c3f6..9fdc6cd10 100644 --- a/src/render/SDL_render.c +++ b/src/render/SDL_render.c @@ -1248,7 +1248,7 @@ UpdateLogicalSize(SDL_Renderer *renderer) SDL_Rect viewport; /* 0 is for letterbox, 1 is for overscan */ int scale_policy = 0; - const char *hint = SDL_GetHint(SDL_HINT_RENDER_LOGICAL_SIZE_MODE); + const char *hint; if (!renderer->logical_w || !renderer->logical_h) { return 0; @@ -1257,23 +1257,20 @@ UpdateLogicalSize(SDL_Renderer *renderer) return -1; } - if (!hint) { - scale_policy = 0; - } else if ( *hint == '1' || SDL_strcasecmp(hint, "overscan") == 0) { - /* Unfortunately, Direct3D 9 does't support negative viewport numbers - which the main overscan implementation relies on. - D3D11 does support negative values and uses a different id string - so overscan will work for D3D11. + hint = SDL_GetHint(SDL_HINT_RENDER_LOGICAL_SIZE_MODE); + if (hint && (*hint == '1' || SDL_strcasecmp(hint, "overscan") == 0)) { + SDL_bool overscan_supported = SDL_TRUE; + /* Unfortunately, Direct3D 9 doesn't support negative viewport numbers + which the overscan implementation relies on. */ - if(SDL_strcasecmp("direct3d", SDL_GetCurrentVideoDriver())) { - scale_policy = 0; - } else { + if (SDL_strcasecmp(SDL_GetCurrentVideoDriver(), "direct3d") == 0) { + overscan_supported = SDL_FALSE; + } + if (overscan_supported) { scale_policy = 1; } - } else { - scale_policy = 0; } - + want_aspect = (float)renderer->logical_w / renderer->logical_h; real_aspect = (float)w / h;