aboutsummaryrefslogtreecommitdiff
path: root/engines
diff options
context:
space:
mode:
Diffstat (limited to 'engines')
-rw-r--r--engines/glk/level9/level9.h2
-rw-r--r--engines/glk/level9/os_glk.cpp21
2 files changed, 21 insertions, 2 deletions
diff --git a/engines/glk/level9/level9.h b/engines/glk/level9/level9.h
index ee7dbce83b..53085c762a 100644
--- a/engines/glk/level9/level9.h
+++ b/engines/glk/level9/level9.h
@@ -20,6 +20,8 @@
*
*/
+/* Based on Level 9 interpreter 4.1 */
+
#ifndef GLK_LEVEL9_LEVEL9
#define GLK_LEVEL9_LEVEL9
diff --git a/engines/glk/level9/os_glk.cpp b/engines/glk/level9/os_glk.cpp
index 3ba8a3d868..c215251df5 100644
--- a/engines/glk/level9/os_glk.cpp
+++ b/engines/glk/level9/os_glk.cpp
@@ -326,11 +326,13 @@ static const glui32 GLN_GRAPHICS_TIMEOUT = 50;
*/
static const int GLN_GRAPHICS_REPAINT_WAIT = 10;
+#ifdef GFX_SCALE_BY_FACTOR
/* Pixel size multiplier for image size scaling. */
static const int GLN_GRAPHICS_PIXEL = 1;
+#endif
/* Proportion of the display to use for graphics. */
-static const glui32 GLN_GRAPHICS_PROPORTION = 30;
+static const glui32 GLN_GRAPHICS_PROPORTION = 50;
/*
* Special title picture number, requiring its own handling, and count of
@@ -656,7 +658,7 @@ static void gln_graphics_convert_palette(Colour ln_palette[], glui32 glk_palette
}
}
-
+#ifdef GFX_SCALE_BY_FACTOR
/*
* gln_graphics_position_picture()
*
@@ -678,6 +680,7 @@ static void gln_graphics_position_picture(winid_t glk_window, int pixel_size,
*x_offset = ((int) window_width - width * pixel_size) / 2;
*y_offset = ((int) window_height - height * pixel_size) / 2;
}
+#endif
/*
* gms_graphics_compare_layering_inverted()
@@ -981,8 +984,14 @@ static void gln_graphics_paint_everything(winid_t glk_window, Colour palette[],
}
}
+ #ifdef GFX_SCALE_BY_FACTOR
g_vm->glk_image_draw_scaled(glk_window, s, (uint)-1, x_offset, y_offset,
width * GLN_GRAPHICS_PIXEL, height * GLN_GRAPHICS_PIXEL);
+ #else
+ uint winWidth, winHeight;
+ g_vm->glk_window_get_size(glk_window, &winWidth, &winHeight);
+ g_vm->glk_image_draw_scaled(glk_window, s, (uint)-1, 0, 0, winWidth, winHeight);
+ #endif
}
/*
@@ -1095,6 +1104,7 @@ static void gln_graphics_timeout() {
* graphics window.
*/
if (gln_graphics_new_picture || deferred_repaint) {
+ #ifdef GFX_SCALE_BY_FACTOR
/*
* Calculate the x and y offset to center the picture in the graphics
* window.
@@ -1103,6 +1113,9 @@ static void gln_graphics_timeout() {
GLN_GRAPHICS_PIXEL,
gln_graphics_width, gln_graphics_height,
&x_offset, &y_offset);
+ #else
+ x_offset = y_offset = 0;
+ #endif
/*
* Reset all on-screen pixels to an unused value, guaranteed not to
@@ -1132,7 +1145,11 @@ static void gln_graphics_timeout() {
/* Clear the graphics window. */
gln_graphics_clear_and_border(gln_graphics_window,
x_offset, y_offset,
+ #ifdef GFX_SCALE_BY_FACTOR
GLN_GRAPHICS_PIXEL,
+ #else
+ 1,
+ #endif
gln_graphics_width, gln_graphics_height);
#ifndef GARGLK
/* Start a fresh picture rendering pass. */