From aa5e02ad753b1c5b06ec7b56f31a547b7d556897 Mon Sep 17 00:00:00 2001 From: itzTanos29 Date: Fri, 10 Jul 2026 13:24:50 -0400 Subject: [PATCH] Fix rlsw persistent alpha blending state --- src/external/rlsw.h | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/external/rlsw.h b/src/external/rlsw.h index 6ca1cecf1b33..db10bf2b4f88 100644 --- a/src/external/rlsw.h +++ b/src/external/rlsw.h @@ -3909,7 +3909,6 @@ static void sw_immediate_set_color(const float color[4]) RLSW.primitive.color[2] = color[2]; RLSW.primitive.color[3] = color[3]; - RLSW.primitive.hasColorAlpha |= (color[3] < 1.0f); } static void sw_immediate_set_texcoord(const float texcoord[2]) @@ -3948,6 +3947,9 @@ static void sw_immediate_push_vertex(const float position[4]) for (int i = 0; i < 4; i++) vertex->color[i] = RLSW.primitive.color[i]; for (int i = 0; i < 2; i++) vertex->texcoord[i] = RLSW.primitive.texcoord[i]; + // Track whether any vertex in this primitive has alpha < 1.0 + RLSW.primitive.hasColorAlpha |= (vertex->color[3] < 1.0f); + // Immediate rendering of the primitive if the required number is reached if (RLSW.primitive.vertexCount == SW_PRIMITIVE_VERTEX_COUNT[RLSW.drawMode]) {