diff options
author | Tobia Tesan | 2016-03-31 11:17:16 +0200 |
---|---|---|
committer | Tobia Tesan | 2016-12-26 12:29:06 +0100 |
commit | b7bd1991933526a6637e4ea0fd3f1305d0f6627a (patch) | |
tree | ea743c817270002b77950ea5d112161cc84846f6 /engines/wintermute/base/gfx/osystem | |
parent | c6ed1625f0027700964feb9c081efa20cbffd8cb (diff) | |
download | scummvm-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/osystem')
-rw-r--r-- | engines/wintermute/base/gfx/osystem/render_ticket.cpp | 15 |
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; |