Чтобы сделать «поддельное» полноэкранное окно в SDL2 без набора режимов, вы можете создать развернутое окно без полей, используя что-то вроде этого.
int idx = SDL_GetWindowDisplayIndex(g_displayWindow);
SDL_Rect bounds;
SDL_GetDisplayBounds(idx, &bounds);
//SDL_SetWindowResizable(g_displayWindow, SDL_FALSE);
SDL_SetWindowBordered(g_displayWindow, SDL_FALSE);
SDL_SetWindowPosition(g_displayWindow, bounds.x, bounds.y);
SDL_SetWindowSize(g_displayWindow, bounds.w, bounds.h);
Для неизменяемых окон это работает отлично. В окнах, созданных с помощью SDL_WINDOW_RESIZABLE, есть раздражающая серая рамка по нижнему и правому краям экрана (на окнах). К сожалению, нет функции SDL_SetWindowResizable (начиная с SDL 2.0.4). Как мы можем избавиться от границы изменения размера без воссоздания окна?
И SDL_WINDOW_FULLSCREEN_DESKTOP, и SDL_WINDOW_FULLSCREEN выполняют набор модов, которого я хочу избежать — это занимает больше времени, труднее выйти из него с помощью Alt-Tab, и если игра достигает точки останова в отладчике, она может заблокировать всю систему.