From a94300dd860e74b0f428e2c1f392ab975238a7a8 Mon Sep 17 00:00:00 2001 From: Lioncash Date: Thu, 17 Sep 2015 01:46:26 -0400 Subject: [PATCH] Rasterizer: Use multiplication instead of shifts in DrawTriangleFrontFace The left-hand-side is negative at some point which is considered undefined by the standard. --- Source/Core/VideoBackends/Software/Rasterizer.cpp | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/Source/Core/VideoBackends/Software/Rasterizer.cpp b/Source/Core/VideoBackends/Software/Rasterizer.cpp index 4a04e02f7c..9b6b9f593a 100644 --- a/Source/Core/VideoBackends/Software/Rasterizer.cpp +++ b/Source/Core/VideoBackends/Software/Rasterizer.cpp @@ -360,13 +360,13 @@ void DrawTriangleFrontFace(OutputVertexData *v0, OutputVertexData *v1, OutputVer const s32 DY31 = Y3 - Y1; // Fixed-pos32 deltas - const s32 FDX12 = DX12 << 4; - const s32 FDX23 = DX23 << 4; - const s32 FDX31 = DX31 << 4; + const s32 FDX12 = DX12 * 16; + const s32 FDX23 = DX23 * 16; + const s32 FDX31 = DX31 * 16; - const s32 FDY12 = DY12 << 4; - const s32 FDY23 = DY23 << 4; - const s32 FDY31 = DY31 << 4; + const s32 FDY12 = DY12 * 16; + const s32 FDY23 = DY23 * 16; + const s32 FDY31 = DY31 * 16; // Bounding rectangle s32 minx = (std::min(std::min(X1, X2), X3) + 0xF) >> 4;