From bb95e0c337d7c23e052d16a197bc18b07e8338d1 Mon Sep 17 00:00:00 2001 From: Gleb Mazovetskiy Date: Sat, 22 May 2021 14:28:43 +0100 Subject: [PATCH] cl2_render: Use memset when rendering outline A minor cleanup that replaces the for-loop rendering for a fill run with memsets. --- Source/engine/render/cl2_render.cpp | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/Source/engine/render/cl2_render.cpp b/Source/engine/render/cl2_render.cpp index 34eda28c9..db7d67205 100644 --- a/Source/engine/render/cl2_render.cpp +++ b/Source/engine/render/cl2_render.cpp @@ -341,8 +341,18 @@ void RenderOutlineForPixel(std::uint8_t *dst, int dstPitch, std::uint8_t color) template void RenderOutlineForPixels(std::uint8_t *dst, int dstPitch, int width, std::uint8_t color) { - while (width-- > 0) - RenderOutlineForPixel(dst++, dstPitch, color); + if (North) + std::memset(dst - dstPitch, color, width); + + if (West && East) + std::memset(dst - 1, color, width + 2); + else if (West) + std::memset(dst - 1, color, width); + else if (East) + std::memset(dst + 1, color, width); + + if (South) + std::memset(dst + dstPitch, color, width); } template