diff options
-rw-r--r-- | engines/wintermute/base/gfx/osystem/base_surface_osystem.cpp | 3 | ||||
-rw-r--r-- | engines/wintermute/base/gfx/osystem/render_ticket.cpp | 4 |
2 files changed, 6 insertions, 1 deletions
diff --git a/engines/wintermute/base/gfx/osystem/base_surface_osystem.cpp b/engines/wintermute/base/gfx/osystem/base_surface_osystem.cpp index 4e33702504..140988267f 100644 --- a/engines/wintermute/base/gfx/osystem/base_surface_osystem.cpp +++ b/engines/wintermute/base/gfx/osystem/base_surface_osystem.cpp @@ -452,7 +452,8 @@ bool BaseSurfaceOSystem::drawSprite(int x, int y, Rect32 *rect, Rect32 *newRect, // But no checking is in place for that yet. // Optimize by not doing alpha-blits if we lack alpha - if (_alphaType == Graphics::ALPHA_OPAQUE && !transform._alphaDisable) { + // If angle is not 0, then transparent regions are added near the corners + if (_alphaType == Graphics::ALPHA_OPAQUE && transform._angle == 0) { transform._alphaDisable = true; } 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()); } |