From b464c589af86a8e88dddecf726fef7172f63783a Mon Sep 17 00:00:00 2001 From: Jonathan G Rennison Date: Thu, 19 May 2022 00:07:09 +0100 Subject: [PATCH] Reduce blitter MoveTo calls when drawing viewport map scrolling box blend --- src/viewport.cpp | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/viewport.cpp b/src/viewport.cpp index 991563dbac..3dbf20e542 100644 --- a/src/viewport.cpp +++ b/src/viewport.cpp @@ -3169,10 +3169,14 @@ static void ViewportMapDrawScrollingViewportBox(const Viewport * const vp) const int y = UnScaleByZoom(t_inter - _vd.dpi.top, vp->zoom); /* If asked, with 32bpp we can do some blending */ - if (_settings_client.gui.show_scrolling_viewport_on_map >= 2 && blitter->GetScreenDepth() == 32) - for (int j = y; j < y + h_inter; j++) - for (int i = x; i < x + w_inter; i++) - PixelBlend((uint32*) blitter->MoveTo(_vd.dpi.dst_ptr, i, j), 0x40FCFCFC); + if (_settings_client.gui.show_scrolling_viewport_on_map >= 2 && blitter->GetScreenDepth() == 32) { + for (int j = y; j < y + h_inter; j++) { + uint32 *buf = (uint32*) blitter->MoveTo(_vd.dpi.dst_ptr, x, j); + for (int i = 0; i < w_inter; i++) { + PixelBlend(buf + i, 0x40FCFCFC); + } + } + } /* Draw area contour */ if (_settings_client.gui.show_scrolling_viewport_on_map != 2) {