Paul Gofman : ddraw: Enable lighting only if material is set in d3d_execute_buffer_execute().
Alexandre Julliard
julliard at winehq.org
Mon Apr 20 15:01:49 CDT 2020
Module: wine
Branch: oldstable
Commit: 63cf5771a8b1677f3f769cead471e2c2cec36e1e
URL: https://source.winehq.org/git/wine.git/?a=commit;h=63cf5771a8b1677f3f769cead471e2c2cec36e1e
Author: Paul Gofman <gofmanp at gmail.com>
Date: Wed May 15 18:06:49 2019 +0300
ddraw: Enable lighting only if material is set in d3d_execute_buffer_execute().
Signed-off-by: Paul Gofman <gofmanp at gmail.com>
Signed-off-by: Henri Verbeet <hverbeet at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
(cherry picked from commit ae2696c992a0bf0971b8b2e6df847bea51f8d3c4)
Signed-off-by: Michael Stefaniuc <mstefani at winehq.org>
---
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 2ba29a7ed7..6f00d75562 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;
More information about the wine-cvs
mailing list