This is my basic sample for demonstration. Here everything is fine, the window opens in fullscreen mode.
Code:
int main(int argc, char** argv)
{
SDL_Window *window;
SDL_Renderer *renderer;
SDL_CreateWindowAndRenderer(1400, 1050, SDL_WINDOW_FULLSCREEN, &window, &renderer);
bool done = false;
while (!done) {
SDL_Event event;
while (SDL_PollEvent(&event)) {
if (event.type == SDL_QUIT)
done = true;
}
SDL_RenderClear(renderer);
}
SDL_DestroyRenderer(renderer);
SDL_DestroyWindow(window);
return 0;
}
When I replace window creation with this:
Code:
SDL_CreateWindowAndRenderer(800, 600, SDL_WINDOW_RESIZABLE, &window, &renderer);
SDL_SetWindowSize(window, 1024, 768);
SDL_SetWindowFullscreen(window, SDL_WINDOW_FULLSCREEN);
Everything looks fine too - window is created as window and immediately changed to fullscreen.
But a strange thing happens when I use my native desktop resolution as fullscreen resolution:
Code:
SDL_CreateWindowAndRenderer(800, 600, SDL_WINDOW_RESIZABLE, &window, &renderer);
SDL_SetWindowSize(window, 1400, 1050); //<- my native resolution
SDL_SetWindowFullscreen(window, SDL_WINDOW_FULLSCREEN);
The window opens in “fake” borderless fullscreen, as if I passed SDL_WINDOW_FULLSCREEN_DESKTOP to SDL_SetWindowFullscreen.
Can anyone help me understand what’s happening here? I’m using stable SDL 2.0.3 on Windows 8.1.