Skip to content

Renderer scaling regressed after latest changes SDL_GetCurrentRenderOutputSize == SDL_GetWindowSize #7245

@grimaldini

Description

@grimaldini

Working off the latest changes from main:
SDL_GetCurrentRenderOutputSize seems to now be returning the same as SDL_GetWindowSize, which regresses all scaling logic based off that functionality.

My setup, roughly:

                   SDL_Init(SDL_INIT_VIDEO | SDL_INIT_AUDIO);
                   SDL_SetHint(SDL_HINT_IME_SUPPORT_EXTENDED_TEXT, "1");
                   SDL_SetHint(SDL_HINT_IME_INTERNAL_EDITING, "1");
                   SDL_SetHint(SDL_HINT_IME_SHOW_UI, "1");
                   SDL_SetHint(SDL_HINT_RENDER_DRIVER, "metal");
                   SDL_SetHint(SDL_HINT_RENDER_SCALE_QUALITY, "2");
                   SDL_SetHint(SDL_HINT_ORIENTATIONS,
                               "Portrait PortraitUpsideDown LandscapeLeft LandscapeRight");
                   WINDOW = SDL_CreateWindow(nullptr, SDL_WINDOWPOS_UNDEFINED,
                                             SDL_WINDOWPOS_UNDEFINED, DEFAULT_WINDOW_WIDTH,
                                             DEFAULT_WINDOW_HEIGHT, SDL_WINDOW_RESIZABLE);
                   RENDERER = SDL_CreateRenderer(
                       WINDOW, NULL, SDL_RENDERER_ACCELERATED | SDL_RENDERER_PRESENTVSYNC);

                   // Calculates and sets rendering scale.
                   int2 renderer_size, pixel_size;
                   SDL_GetCurrentRenderOutputSize(RENDERER, &renderer_size.x, &renderer_size.y);
                   SDL_GetWindowSize(WINDOW, &pixel_size.x, &pixel_size.y);
                   float PIXEL_SCALE = renderer_size.x / pixel_size.x;
                   SDL_SetRenderScale(RENDERER, PIXEL_SCALE, PIXEL_SCALE);

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions