summaryrefslogtreecommitdiff
path: root/platform/gl
diff options
context:
space:
mode:
authorTor Andersson <tor.andersson@artifex.com>2018-04-13 12:50:01 +0200
committerRobin Watts <robin.watts@artifex.com>2018-06-22 16:48:46 +0100
commit80edb6d4fe8c4af5b01176bcd956df37a24438a8 (patch)
treeacc48ad258e5b233967e6cbd3df5b6149279665f /platform/gl
parent40f1e72772d86aa4bf899d3f25072477c50055d7 (diff)
downloadmupdf-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')
-rw-r--r--platform/gl/gl-main.c13
-rw-r--r--platform/gl/gl-ui.c25
2 files changed, 31 insertions, 7 deletions
diff --git a/platform/gl/gl-main.c b/platform/gl/gl-main.c
index c6aadc0b..c2697489 100644
--- a/platform/gl/gl-main.c
+++ b/platform/gl/gl-main.c
@@ -58,7 +58,11 @@ static void open_browser(const char *uri)
#endif
}
-static const int zoom_list[] = { 18, 24, 36, 54, 72, 96, 120, 144, 180, 216, 288 };
+static const int zoom_list[] = {
+ 24, 36, 48, 60, 72, 84, 96, 108,
+ 120, 144, 168, 192, 228, 264,
+ 300, 350, 400, 450, 500, 550, 600
+};
static int zoom_in(int oldres)
{
@@ -102,8 +106,8 @@ static int scroll_x = 0, scroll_y = 0;
static int canvas_x = 0, canvas_w = 100;
static int canvas_y = 0, canvas_h = 100;
-static int outline_w = 260;
-static int annotate_w = 220;
+static int outline_w = 14; /* to be scaled by lineheight */
+static int annotate_w = 12; /* to be scaled by lineheight */
static int oldinvert = 0, currentinvert = 0;
static int oldpage = 0, currentpage = 0;
@@ -1366,6 +1370,9 @@ int main(int argc, char **argv)
ui.dialog = do_open_document_dialog;
}
+ annotate_w *= ui.lineheight;
+ outline_w *= ui.lineheight;
+
glutMainLoop();
ui_finish();
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);
}