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]) {