diff options
author | Simon Howard | 2013-10-28 01:27:15 +0000 |
---|---|---|
committer | Simon Howard | 2013-10-28 01:27:15 +0000 |
commit | ee40db2fcd700d96bcba1ed2b6a9a9e75a76563a (patch) | |
tree | a4d7fcba633d4bc12c5c5a5d785f4bc5615ebfd6 | |
parent | b07602b54dfb30d8f708901f41e1f2fce2ed2961 (diff) | |
parent | 552d300e2615bae577a629c9e738ebc27d906f27 (diff) | |
download | chocolate-doom-ee40db2fcd700d96bcba1ed2b6a9a9e75a76563a.tar.gz chocolate-doom-ee40db2fcd700d96bcba1ed2b6a9a9e75a76563a.tar.bz2 chocolate-doom-ee40db2fcd700d96bcba1ed2b6a9a9e75a76563a.zip |
Merge from trunk.
Subversion-branch: /branches/v2-branch
Subversion-revision: 2725
-rw-r--r-- | textscreen/txt_sdl.c | 39 |
1 files changed, 18 insertions, 21 deletions
diff --git a/textscreen/txt_sdl.c b/textscreen/txt_sdl.c index 488399d3..20796dd5 100644 --- a/textscreen/txt_sdl.c +++ b/textscreen/txt_sdl.c @@ -151,9 +151,8 @@ static txt_font_t *FontForName(char *name) static void ChooseFont(void) { - SDL_Rect **modes; + const SDL_VideoInfo *info; char *env; - int i; // Allow normal selection to be overridden from an environment variable: @@ -169,37 +168,35 @@ static void ChooseFont(void) } } - // Check all modes + // Get desktop resolution: - modes = SDL_ListModes(NULL, SDL_FULLSCREEN); + info = SDL_GetVideoInfo(); // If in doubt and we can't get a list, always prefer to // fall back to the normal font: - if (modes == NULL || modes == (SDL_Rect **) -1 || *modes == NULL) + if (info == NULL) { font = &main_font; return; } - // Scan through the list of modes. If we find no modes that are at - // least 640x480 in side, default to the small font. If we find one - // mode that is at least 1920x1080, this is a modern high-resolution - // display, and we can use the large font. + // On tiny low-res screens (eg. palmtops) use the small font. + // If the screen resolution is at least 1920x1080, this is + // a modern high-resolution display, and we can use the + // large font. - font = &small_font; - - for (i=0; modes[i] != NULL; ++i) + if (info->current_w < 640 || info->current_h < 480) { - if (modes[i]->w >= 1920 && modes[i]->h >= 1080) - { - font = &large_font; - break; - } - else if (modes[i]->w >= 640 && modes[i]->h >= 480) - { - font = &main_font; - } + font = &small_font; + } + else if (info->current_w >= 1920 && info->current_h >= 1080) + { + font = &large_font; + } + else + { + font = &main_font; } } |