aboutsummaryrefslogtreecommitdiff
path: root/engines/wintermute/base/gfx
diff options
context:
space:
mode:
authorTobia Tesan2016-03-31 11:17:16 +0200
committerTobia Tesan2016-12-26 12:29:06 +0100
commitb7bd1991933526a6637e4ea0fd3f1305d0f6627a (patch)
treeea743c817270002b77950ea5d112161cc84846f6 /engines/wintermute/base/gfx
parentc6ed1625f0027700964feb9c081efa20cbffd8cb (diff)
downloadscummvm-rg350-b7bd1991933526a6637e4ea0fd3f1305d0f6627a.tar.gz
scummvm-rg350-b7bd1991933526a6637e4ea0fd3f1305d0f6627a.tar.bz2
scummvm-rg350-b7bd1991933526a6637e4ea0fd3f1305d0f6627a.zip
WINTERMUTE: Call BILINEAR/NEAREST rotoscale and scale according to game option
Diffstat (limited to 'engines/wintermute/base/gfx')
-rw-r--r--engines/wintermute/base/gfx/osystem/render_ticket.cpp15
1 files changed, 13 insertions, 2 deletions
diff --git a/engines/wintermute/base/gfx/osystem/render_ticket.cpp b/engines/wintermute/base/gfx/osystem/render_ticket.cpp
index afe884300a..78d445ac8c 100644
--- a/engines/wintermute/base/gfx/osystem/render_ticket.cpp
+++ b/engines/wintermute/base/gfx/osystem/render_ticket.cpp
@@ -27,6 +27,7 @@
*/
+#include "engines/wintermute/base/base_game.h"
#include "engines/wintermute/base/gfx/osystem/render_ticket.h"
#include "engines/wintermute/base/gfx/osystem/base_surface_osystem.h"
#include "graphics/transform_tools.h"
@@ -59,7 +60,12 @@ RenderTicket::RenderTicket(BaseSurfaceOSystem *owner, const Graphics::Surface *s
// TransformTools.)
if (_transform._angle != Graphics::kDefaultAngle) {
Graphics::TransparentSurface src(*_surface, false);
- Graphics::Surface *temp = src.rotoscale(transform);
+ Graphics::Surface *temp;
+ if (owner->_gameRef->getBilinearFiltering()) {
+ temp = src.rotoscale<Graphics::FILTER_BILINEAR>(transform);
+ } else {
+ temp = src.rotoscale<Graphics::FILTER_NEAREST>(transform);
+ }
_surface->free();
delete _surface;
_surface = temp;
@@ -67,7 +73,12 @@ RenderTicket::RenderTicket(BaseSurfaceOSystem *owner, const Graphics::Surface *s
dstRect->height() != srcRect->height()) &&
_transform._numTimesX * _transform._numTimesY == 1) {
Graphics::TransparentSurface src(*_surface, false);
- Graphics::Surface *temp = src.scale(dstRect->width(), dstRect->height());
+ Graphics::Surface *temp;
+ if (owner->_gameRef->getBilinearFiltering()) {
+ temp = src.scale<Graphics::FILTER_BILINEAR>(dstRect->width(), dstRect->height());
+ } else {
+ temp = src.scale<Graphics::FILTER_NEAREST>(dstRect->width(), dstRect->height());
+ }
_surface->free();
delete _surface;
_surface = temp;