Module: wine Branch: master Commit: 19d85623cf4d5540be709de3040a298700c4a8eb URL: http://source.winehq.org/git/wine.git/?a=commit;h=19d85623cf4d5540be709de304...
Author: Józef Kucia jkucia@codeweavers.com Date: Mon Feb 6 14:12:11 2017 +0100
ddraw: Implement D3DOP_TEXTURELOAD.
Signed-off-by: Józef Kucia jkucia@codeweavers.com Signed-off-by: Henri Verbeet hverbeet@codeweavers.com Signed-off-by: Alexandre Julliard julliard@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: