Creating a Fullscreen Window in SDL2
How can I create a fullscreen window in SDL2?
To create a fullscreen window in SDL2, you can use the SDL_WINDOW_FULLSCREEN
flag when creating the window. Here's an example of how to create a fullscreen window:
#include <SDL.h>
int main(int argc, char* argv[]) {
SDL_Init(SDL_INIT_VIDEO);
SDL_Window* window{SDL_CreateWindow(
"Fullscreen Window",
SDL_WINDOWPOS_UNDEFINED,
SDL_WINDOWPOS_UNDEFINED,
0, 0, SDL_WINDOW_FULLSCREEN_DESKTOP
)};
// Rendering and event handling code here
// ...
SDL_DestroyWindow(window);
SDL_Quit();
return 0;
}
In this example, we pass the SDL_WINDOW_FULLSCREEN_DESKTOP
flag as the last argument to SDL_CreateWindow
. This flag tells SDL2 to create a fullscreen window that covers the entire desktop.
Note that we set the width and height parameters to 0 since the window will automatically cover the entire screen.
If you want to toggle between fullscreen and windowed mode dynamically, you can use the SDL_SetWindowFullscreen
function:
// Toggle fullscreen mode
if (SDL_GetWindowFlags(window)
& SDL_WINDOW_FULLSCREEN_DESKTOP) {
// Exit fullscreen
SDL_SetWindowFullscreen(window, 0);
} else {
// Enter fullscreen
SDL_SetWindowFullscreen(window,
SDL_WINDOW_FULLSCREEN_DESKTOP);
}
This code snippet checks the current window flags using SDL_GetWindowFlags
to determine if the window is currently in fullscreen mode. If it is, it exits fullscreen mode by passing 0 to SDL_SetWindowFullscreen
. Otherwise, it enters fullscreen mode by passing the SDL_WINDOW_FULLSCREEN_DESKTOP
flag.
Remember to handle the necessary events, such as the SDL_KEYDOWN event, to trigger the fullscreen toggle based on user input.
Building SDL2 from Source (GCC and Make)
This guide walks you through the process of compiling SDL2, SDL_image, and SDL_ttf libraries from source