aboutsummaryrefslogtreecommitdiff
path: root/engines
diff options
context:
space:
mode:
authorPaul Gilbert2019-10-24 22:31:04 -0700
committerPaul Gilbert2019-10-26 11:13:29 -0700
commit4332df2bda8d8f3942d81db3051f780d2f1bf02a (patch)
tree23783787748e81ad08e27df44480314d3e0c535a /engines
parent07c8437e268b12c0633495579f56c4e08e8ef7d2 (diff)
downloadscummvm-rg350-4332df2bda8d8f3942d81db3051f780d2f1bf02a.tar.gz
scummvm-rg350-4332df2bda8d8f3942d81db3051f780d2f1bf02a.tar.bz2
scummvm-rg350-4332df2bda8d8f3942d81db3051f780d2f1bf02a.zip
GLK: LEVEL9: Allow for future graphic scaling
Diffstat (limited to 'engines')
-rw-r--r--engines/glk/glk_api.cpp18
-rw-r--r--engines/glk/level9/os_glk.cpp3
2 files changed, 13 insertions, 8 deletions
diff --git a/engines/glk/glk_api.cpp b/engines/glk/glk_api.cpp
index 6d34e3a6e1..ba05988e86 100644
--- a/engines/glk/glk_api.cpp
+++ b/engines/glk/glk_api.cpp
@@ -930,15 +930,19 @@ bool GlkAPI::glk_image_draw_scaled(winid_t win, const Graphics::Surface &image,
if (!win) {
warning("image_draw_scaled: invalid ref");
} else if (g_conf->_graphics) {
- GraphicsWindow *gfxWin = dynamic_cast<GraphicsWindow *>(win);
+ if (image.w == width && image.h == height) {
+ return glk_image_draw(win, image, transColor, xp, yp);
- Graphics::ManagedSurface s(width, height);
- s.clear(transColor);
- s.transBlitFrom(image, Common::Rect(0, 0, image.w, image.h),
- Common::Rect(0, 0, width, height), transColor);
+ } else {
+ GraphicsWindow *gfxWin = dynamic_cast<GraphicsWindow *>(win);
- if (gfxWin)
- gfxWin->drawPicture(s, transColor, xp, yp, s.w, s.h);
+ Graphics::ManagedSurface s(width, height, image.format);
+ s.transBlitFrom(image, Common::Rect(0, 0, image.w, image.h),
+ Common::Rect(0, 0, width, height));
+
+ if (gfxWin)
+ gfxWin->drawPicture(s, transColor, xp, yp, s.w, s.h);
+ }
}
return true;
diff --git a/engines/glk/level9/os_glk.cpp b/engines/glk/level9/os_glk.cpp
index b2ac4ac727..586b80840c 100644
--- a/engines/glk/level9/os_glk.cpp
+++ b/engines/glk/level9/os_glk.cpp
@@ -2000,7 +2000,8 @@ static void gln_graphics_paint_everything(winid_t glk_window, Colour palette[],
}
}
- g_vm->glk_image_draw(glk_window, s, (uint)-1, x_offset, y_offset);
+ g_vm->glk_image_draw_scaled(glk_window, s, (uint)-1, x_offset, y_offset,
+ width * GLN_GRAPHICS_PIXEL, height * GLN_GRAPHICS_PIXEL);
}
/*