Skip to content
Permalink
Browse files

Retain the high dpi flag when recreating the window (e.g when creatin…

…g a renderer context)
  • Loading branch information
slouken committed Nov 12, 2013
1 parent 1296135 commit 397f5a850d1d8db0fe735789b0fe56df90de92d1
Showing with 12 additions and 11 deletions.
  1. +12 −11 src/video/SDL_video.c
@@ -1175,7 +1175,7 @@ SDL_UpdateFullscreenMode(SDL_Window * window, SDL_bool fullscreen)
}

#define CREATE_FLAGS \
(SDL_WINDOW_OPENGL | SDL_WINDOW_BORDERLESS | SDL_WINDOW_RESIZABLE)
(SDL_WINDOW_OPENGL | SDL_WINDOW_BORDERLESS | SDL_WINDOW_RESIZABLE | SDL_WINDOW_ALLOW_HIGHDPI)

static void
SDL_FinishWindowCreation(SDL_Window *window, Uint32 flags)
@@ -1236,6 +1236,17 @@ SDL_CreateWindow(const char *title, int x, int y, int w, int h, Uint32 flags)
return NULL;
}
}

/* Unless the user has specified the high-DPI disabling hint, respect the
* SDL_WINDOW_ALLOW_HIGHDPI flag.
*/
if (flags & SDL_WINDOW_ALLOW_HIGHDPI) {
hint = SDL_GetHint(SDL_HINT_VIDEO_HIGHDPI_DISABLED);
if (hint && SDL_atoi(hint) > 0) {
flags &= ~SDL_WINDOW_ALLOW_HIGHDPI;
}
}

window = (SDL_Window *)SDL_calloc(1, sizeof(*window));
if (!window) {
SDL_OutOfMemory();
@@ -1266,16 +1277,6 @@ SDL_CreateWindow(const char *title, int x, int y, int w, int h, Uint32 flags)
window->brightness = 1.0f;
window->next = _this->windows;

/* Unless the user has specified the high-DPI disabling hint, respect the
* SDL_WINDOW_ALLOW_HIGHDPI flag.
*/
hint = SDL_GetHint(SDL_HINT_VIDEO_HIGHDPI_DISABLED);
if (!hint || *hint != '1') {
if ((flags & SDL_WINDOW_ALLOW_HIGHDPI)) {
window->flags |= SDL_WINDOW_ALLOW_HIGHDPI;
}
}

if (_this->windows) {
_this->windows->prev = window;
}

0 comments on commit 397f5a8

Please sign in to comment.