From 63cf5771a8b1677f3f769cead471e2c2cec36e1e Mon Sep 17 00:00:00 2001 From: Paul Gofman Date: Wed, 15 May 2019 18:06:49 +0300 Subject: [PATCH] ddraw: Enable lighting only if material is set in d3d_execute_buffer_execute(). Signed-off-by: Paul Gofman Signed-off-by: Henri Verbeet Signed-off-by: Alexandre Julliard (cherry picked from commit ae2696c992a0bf0971b8b2e6df847bea51f8d3c4) Signed-off-by: Michael Stefaniuc --- dlls/ddraw/executebuffer.c | 20 +++++--------------- 1 file changed, 5 insertions(+), 15 deletions(-) diff --git a/dlls/ddraw/executebuffer.c b/dlls/ddraw/executebuffer.c index 2ba29a7ed72..6f00d755627 100644 --- a/dlls/ddraw/executebuffer.c +++ b/dlls/ddraw/executebuffer.c @@ -318,21 +318,11 @@ HRESULT d3d_execute_buffer_execute(struct d3d_execute_buffer *buffer, case D3DPROCESSVERTICES_TRANSFORM: wined3d_device_set_stream_source(device->wined3d_device, 0, buffer->src_vertex_buffer, buffer->src_vertex_pos, sizeof(D3DVERTEX)); - if (op == D3DPROCESSVERTICES_TRANSFORMLIGHT) - { - wined3d_device_set_vertex_declaration(device->wined3d_device, - ddraw_find_decl(device->ddraw, D3DFVF_VERTEX)); - wined3d_device_set_render_state(device->wined3d_device, - WINED3D_RS_LIGHTING, TRUE); - } - else - { - wined3d_device_set_vertex_declaration(device->wined3d_device, - ddraw_find_decl(device->ddraw, D3DFVF_LVERTEX)); - wined3d_device_set_render_state(device->wined3d_device, - WINED3D_RS_LIGHTING, FALSE); - } - + wined3d_device_set_render_state(device->wined3d_device, WINED3D_RS_LIGHTING, + op == D3DPROCESSVERTICES_TRANSFORMLIGHT && !!device->material); + wined3d_device_set_vertex_declaration(device->wined3d_device, + ddraw_find_decl(device->ddraw, op == D3DPROCESSVERTICES_TRANSFORMLIGHT + ? D3DFVF_VERTEX : D3DFVF_LVERTEX)); wined3d_device_process_vertices(device->wined3d_device, ci->wStart, ci->wDest, ci->dwCount, buffer->dst_vertex_buffer, NULL, 0, D3DFVF_TLVERTEX); break;