SDL2:如何正确切换全屏?

eml*_*lai 10 sdl fullscreen sdl-2

我在使用我的程序停用全屏模式时遇到问题.输入全屏正确,但尝试返回窗口模式不起作用,唯一的效果是光标再次显示.

这是为我重现问题的MCVE/SSCCE:

void ToggleFullscreen(SDL_Window* Window) {
    Uint32 FullscreenFlag = SDL_WINDOW_FULLSCREEN;
    bool IsFullscreen = SDL_GetWindowFlags(Window) & FullscreenFlag;
    SDL_SetWindowFullscreen(Window, IsFullscreen ? 0 : FullscreenFlag);
    SDL_ShowCursor(IsFullscreen);
}

int main() {
    SDL_Init(SDL_INIT_VIDEO);
    SDL_Window* Window = SDL_CreateWindow("",
        SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, 640, 480, 0);

    bool Exit = false;
    for (SDL_Event Event; !Exit;) {
        SDL_WaitEvent(&Event);
        if (Event.type == SDL_KEYDOWN) {
            switch (Event.key.keysym.sym) {
                case SDLK_f: ToggleFullscreen(Window); break;
                case SDLK_q: Exit = true; break;
            }
        }
    }
    SDL_DestroyWindow(Window);
    SDL_Quit();
}
Run Code Online (Sandbox Code Playgroud)

SDL_SetWindowFullscreen返回0,就像操作成功一样.我究竟做错了什么?(我在OS X 10.10.3上使用SDL 2.0.3.)

Joe*_*Joe 6

这看起来像一个已知的问题.希望SDL开发人员能够修复它.我发现了以下错误报告.

https://bugzilla.libsdl.org/show_bug.cgi?id=2479