Ich habe Probleme, den Vollbildmodus mit meinem Programm zu deaktivieren. Das Eingeben des Vollbilds erfolgt korrekt, aber der Versuch, zum Fenstermodus zurückzukehren, funktioniert nicht. Der einzige Effekt ist, dass der Cursor erneut angezeigt wird.SDL2: Wie schaltet man den Vollbildmodus richtig um?
Hier ist der MCVE/SSCCE, die das Problem für mich wiedergibt:
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();
}
SDL_SetWindowFullscreen
kehrt 0
, als ob die Operation erfolgreich war. Was mache ich falsch? (Ich verwende SDL 2.0.3 unter OS X 10.10.3.)
Es scheint einen Patch für den Fehler in der v2.0.4 Branche zu geben. Ich denke, ich warte nur bis es veröffentlicht wird. – emlai