Paul Gofman : ddraw: Enable lighting only if material is set in d3d_execute_buffer_execute().
Alexandre Julliard
julliard at winehq.org
Thu May 16 16:26:58 CDT 2019
Module: wine
Branch: master
Commit: ae2696c992a0bf0971b8b2e6df847bea51f8d3c4
URL: https://source.winehq.org/git/wine.git/?a=commit;h=ae2696c992a0bf0971b8b2e6df847bea51f8d3c4
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>
---
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 637c2bd..d5de513 100644
--- a/dlls/ddraw/executebuffer.c
+++ b/dlls/ddraw/executebuffer.c
@@ -306,21 +306,11 @@ HRESULT d3d_execute_buffer_execute(struct d3d_execute_buffer *buffer, struct d3d
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