gates_of_skeldal/platform/sdl/tests/sdl_fullscreen_window.cpp
2025-01-26 15:03:44 +01:00

57 lines
1.7 KiB
C++

#include <iostream>
#include <SDL2/SDL.h>
int main(int argc, char* argv[]) {
if (SDL_Init(SDL_INIT_VIDEO) < 0) {
SDL_Log("Unable to initialize SDL: %s", SDL_GetError());
return -1;
}
SDL_Window* window = SDL_CreateWindow("Fullscreen Toggle with Aspect Ratio",
SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED,
640, 480, SDL_WINDOW_RESIZABLE);
if (!window) {
SDL_Log("Unable to create window: %s", SDL_GetError());
SDL_Quit();
return -1;
}
SDL_Renderer* renderer = SDL_CreateRenderer(window, -1, SDL_RENDERER_ACCELERATED);
if (!renderer) {
SDL_Log("Unable to create renderer: %s", SDL_GetError());
SDL_DestroyWindow(window);
SDL_Quit();
return -1;
}
int isFullscreen = 0;
int running = 1;
SDL_Event event;
while (running) {
while (SDL_PollEvent(&event)) {
if (event.type == SDL_QUIT) {
running = 0;
}
if (event.type == SDL_KEYDOWN) {
if (event.key.keysym.sym == SDLK_RETURN && (event.key.keysym.mod & KMOD_ALT)) {
// Přepnutí mezi fullscreen a oknem
isFullscreen = !isFullscreen;
SDL_SetWindowFullscreen(window, isFullscreen ? SDL_WINDOW_FULLSCREEN_DESKTOP : 0);
}
}
}
// Renderování
SDL_SetRenderDrawColor(renderer, 0, 0, 0, 255);
SDL_RenderClear(renderer);
SDL_RenderPresent(renderer);
}
// Uklid zdrojů
SDL_DestroyRenderer(renderer);
SDL_DestroyWindow(window);
SDL_Quit();
return 0;
}