=?UTF-8?Q?J=C3=B3zef=20Kucia=20?=: ddraw: Implement D3DOP_TEXTURELOAD.
Alexandre Julliard
julliard at winehq.org
Thu Apr 20 12:35:11 CDT 2017
Module: wine
Branch: stable
Commit: 6798a5b5331a8d73b199e829053f347b5e00c324
URL: http://source.winehq.org/git/wine.git/?a=commit;h=6798a5b5331a8d73b199e829053f347b5e00c324
Author: Józef Kucia <jkucia at codeweavers.com>
Date: Mon Feb 6 14:12:11 2017 +0100
ddraw: Implement D3DOP_TEXTURELOAD.
Signed-off-by: Józef Kucia <jkucia at codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
(cherry picked from commit 19d85623cf4d5540be709de3040a298700c4a8eb)
Signed-off-by: Michael Stefaniuc <mstefani at winehq.org>
---
dlls/ddraw/executebuffer.c | 26 ++++++++++++++++++++++++--
1 file changed, 24 insertions(+), 2 deletions(-)
diff --git a/dlls/ddraw/executebuffer.c b/dlls/ddraw/executebuffer.c
index 98e9404..393c52c 100644
--- a/dlls/ddraw/executebuffer.c
+++ b/dlls/ddraw/executebuffer.c
@@ -352,8 +352,30 @@ HRESULT d3d_execute_buffer_execute(struct d3d_execute_buffer *buffer,
break;
case D3DOP_TEXTURELOAD:
- WARN("TEXTURELOAD-s (%u)\n", count);
- instr += count * size;
+ TRACE("TEXTURELOAD (%u)\n", count);
+
+ for (i = 0; i < count; ++i)
+ {
+ D3DTEXTURELOAD *ci = (D3DTEXTURELOAD *)instr;
+ struct ddraw_surface *dst, *src;
+
+ instr += size;
+
+ if (!(dst = ddraw_get_object(&device->handle_table,
+ ci->hDestTexture - 1, DDRAW_HANDLE_SURFACE)))
+ {
+ WARN("Invalid destination texture handle %#x.\n", ci->hDestTexture);
+ continue;
+ }
+ if (!(src = ddraw_get_object(&device->handle_table,
+ ci->hSrcTexture - 1, DDRAW_HANDLE_SURFACE)))
+ {
+ WARN("Invalid source texture handle %#x.\n", ci->hSrcTexture);
+ continue;
+ }
+
+ IDirect3DTexture2_Load(&dst->IDirect3DTexture2_iface, &src->IDirect3DTexture2_iface);
+ }
break;
case D3DOP_EXIT:
More information about the wine-cvs
mailing list