[PATCH 3/5] wined3d: Fix specular alpha value in process_vertices_stride().

Paul Gofman gofmanp at gmail.com
Wed May 22 04:39:27 CDT 2019


Signed-off-by: Paul Gofman <gofmanp at gmail.com>
---
 dlls/wined3d/device.c | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
index 925ae96aa7..ffa6b59003 100644
--- a/dlls/wined3d/device.c
+++ b/dlls/wined3d/device.c
@@ -3190,8 +3190,7 @@ static void wined3d_colour_from_mcs(struct wined3d_color *colour, enum wined3d_m
         case WINED3D_MCS_COLOR2:
             if (!(stream_info->use_map & (1u << WINED3D_FFP_SPECULAR)))
             {
-                colour->r = colour->g = colour->b = 0.0f;
-                colour->a = 1.0f;
+                colour->r = colour->g = colour->b = colour->a = 0.0f;
                 return;
             }
             element = &stream_info->elements[WINED3D_FFP_SPECULAR];
@@ -3845,7 +3844,7 @@ static HRESULT process_vertices_strided(const struct wined3d_device *device, DWO
                 specular_colour.r = specular.r * material_specular.r;
                 specular_colour.g = specular.g * material_specular.g;
                 specular_colour.b = specular.b * material_specular.b;
-                specular_colour.a = 1.0f;
+                specular_colour.a = ls.legacy_lighting ? 0.0f : material_specular.a;
             }
             else
             {
-- 
2.21.0




More information about the wine-devel mailing list