diff --git a/miniwin/src/d3drm/backends/software/renderer.cpp b/miniwin/src/d3drm/backends/software/renderer.cpp index 48c9c3ef..93a80a2e 100644 --- a/miniwin/src/d3drm/backends/software/renderer.cpp +++ b/miniwin/src/d3drm/backends/software/renderer.cpp @@ -800,9 +800,17 @@ void Direct3DRMSoftwareRenderer::Draw2DImage( return; } + bool isUpscaling = centeredRect.w > srcRect.w || centeredRect.h > srcRect.h; + SDL_Surface* surface = m_textures[textureId].cached; SDL_UnlockSurface(surface); - SDL_BlitSurfaceScaled(surface, &srcRect, m_renderedImage, ¢eredRect, SDL_SCALEMODE_LINEAR); + SDL_BlitSurfaceScaled( + surface, + &srcRect, + m_renderedImage, + ¢eredRect, + isUpscaling ? SDL_SCALEMODE_NEAREST : SDL_SCALEMODE_LINEAR + ); SDL_LockSurface(surface); }