aboutsummaryrefslogtreecommitdiff
path: root/engines/wintermute/base/gfx/osystem/render_ticket.cpp
diff options
context:
space:
mode:
authorlolbot-iichan2019-06-27 10:59:35 +0300
committerFilippos Karapetis2019-06-27 10:59:35 +0300
commitfa4d310fb4d3ccdcf45b2f78e2a23126ec07f006 (patch)
tree5c442f2ddc433664ca99f3109bfa9a95710e05d5 /engines/wintermute/base/gfx/osystem/render_ticket.cpp
parent1f0f4c9642d55ecf95d4c5d6a4d947f0786ae2f5 (diff)
downloadscummvm-rg350-fa4d310fb4d3ccdcf45b2f78e2a23126ec07f006.tar.gz
scummvm-rg350-fa4d310fb4d3ccdcf45b2f78e2a23126ec07f006.tar.bz2
scummvm-rg350-fa4d310fb4d3ccdcf45b2f78e2a23126ec07f006.zip
WINTERMUTE: Do not optimize out alpha blits on rotation
This fixes defect #10684: 1-pixel width sprite becomes a big rectangle if rotation is applied. Case was originally reproduced with FoxTail game for WME, then reduced to testcase https://github.com/tobiatesan/wme_testsuite/tree/master/time_test/packages
Diffstat (limited to 'engines/wintermute/base/gfx/osystem/render_ticket.cpp')
-rw-r--r--engines/wintermute/base/gfx/osystem/render_ticket.cpp4
1 files changed, 4 insertions, 0 deletions
diff --git a/engines/wintermute/base/gfx/osystem/render_ticket.cpp b/engines/wintermute/base/gfx/osystem/render_ticket.cpp
index acc9530684..e092e3cf17 100644
--- a/engines/wintermute/base/gfx/osystem/render_ticket.cpp
+++ b/engines/wintermute/base/gfx/osystem/render_ticket.cpp
@@ -117,6 +117,8 @@ void RenderTicket::drawToSurface(Graphics::Surface *_targetSurface) const {
if (_owner) {
if (_transform._alphaDisable) {
src.setAlphaMode(Graphics::ALPHA_OPAQUE);
+ } else if (_transform._angle) {
+ src.setAlphaMode(Graphics::ALPHA_FULL);
} else {
src.setAlphaMode(_owner->getAlphaType());
}
@@ -149,6 +151,8 @@ void RenderTicket::drawToSurface(Graphics::Surface *_targetSurface, Common::Rect
if (_owner) {
if (_transform._alphaDisable) {
src.setAlphaMode(Graphics::ALPHA_OPAQUE);
+ } else if (_transform._angle) {
+ src.setAlphaMode(Graphics::ALPHA_FULL);
} else {
src.setAlphaMode(_owner->getAlphaType());
}