diff options
author | Tor Andersson <tor.andersson@artifex.com> | 2018-04-13 12:50:01 +0200 |
---|---|---|
committer | Robin Watts <robin.watts@artifex.com> | 2018-06-22 16:48:46 +0100 |
commit | 80edb6d4fe8c4af5b01176bcd956df37a24438a8 (patch) | |
tree | acc48ad258e5b233967e6cbd3df5b6149279665f /platform/gl/gl-ui.c | |
parent | 40f1e72772d86aa4bf899d3f25072477c50055d7 (diff) | |
download | mupdf-80edb6d4fe8c4af5b01176bcd956df37a24438a8.tar.xz |
gl: Increase font size on high resolution displays.
Also increase the max resolution in the zoom list.
Diffstat (limited to 'platform/gl/gl-ui.c')
-rw-r--r-- | platform/gl/gl-ui.c | 25 |
1 files changed, 21 insertions, 4 deletions
diff --git a/platform/gl/gl-ui.c b/platform/gl/gl-ui.c index 606afed9..a91723b8 100644 --- a/platform/gl/gl-ui.c +++ b/platform/gl/gl-ui.c @@ -369,6 +369,8 @@ static void on_warning(const char *fmt, va_list ap) void ui_init(int w, int h, const char *title) { + float ui_scale; + glutSetOption(GLUT_ACTION_ON_WINDOW_CLOSE, GLUT_ACTION_GLUTMAINLOOP_RETURNS); glutInitErrorFunc(on_error); @@ -396,10 +398,25 @@ void ui_init(int w, int h, const char *title) glGetIntegerv(GL_MAX_TEXTURE_SIZE, &max_texture_size); - ui.fontsize = DEFAULT_UI_FONTSIZE; - ui.baseline = DEFAULT_UI_BASELINE; - ui.lineheight = DEFAULT_UI_LINEHEIGHT; - ui.gridsize = DEFAULT_UI_GRIDSIZE; + ui_scale = 1; + { + int wmm = glutGet(GLUT_SCREEN_WIDTH_MM); + int wpx = glutGet(GLUT_SCREEN_WIDTH); + int hmm = glutGet(GLUT_SCREEN_HEIGHT_MM); + int hpx = glutGet(GLUT_SCREEN_HEIGHT); + if (wmm > 0 && hmm > 0) + { + float ppi = ((wpx * 254) / wmm + (hpx * 254) / hmm) / 20; + if (ppi >= 144) ui_scale = 1.5f; + if (ppi >= 192) ui_scale = 2.0f; + if (ppi >= 288) ui_scale = 3.0f; + } + } + + ui.fontsize = DEFAULT_UI_FONTSIZE * ui_scale; + ui.baseline = DEFAULT_UI_BASELINE * ui_scale; + ui.lineheight = DEFAULT_UI_LINEHEIGHT * ui_scale; + ui.gridsize = DEFAULT_UI_GRIDSIZE * ui_scale; ui_init_fonts(ui.fontsize); } |