Christian Costa : d3drm: Implement IDirect3DRMMesh_SetGroupTexture.

Alexandre Julliard julliard at winehq.org
Wed Jun 6 15:35:19 CDT 2012


Module: wine
Branch: master
Commit: db6b10e22d9e1c0f039746b392a7ce0468763312
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=db6b10e22d9e1c0f039746b392a7ce0468763312

Author: Christian Costa <titan.costa at gmail.com>
Date:   Tue Jun  5 22:45:09 2012 +0200

d3drm: Implement IDirect3DRMMesh_SetGroupTexture.

---

 dlls/d3drm/meshbuilder.c |   18 +++++++++++++++---
 1 files changed, 15 insertions(+), 3 deletions(-)

diff --git a/dlls/d3drm/meshbuilder.c b/dlls/d3drm/meshbuilder.c
index f3f00c1..836412e 100644
--- a/dlls/d3drm/meshbuilder.c
+++ b/dlls/d3drm/meshbuilder.c
@@ -2692,13 +2692,25 @@ static HRESULT WINAPI IDirect3DRMMeshImpl_SetGroupMaterial(IDirect3DRMMesh* ifac
 }
 
 static HRESULT WINAPI IDirect3DRMMeshImpl_SetGroupTexture(IDirect3DRMMesh* iface,
-                                                          D3DRMGROUPINDEX id, LPDIRECT3DRMTEXTURE value)
+                                                          D3DRMGROUPINDEX id, LPDIRECT3DRMTEXTURE texture)
 {
     IDirect3DRMMeshImpl *This = impl_from_IDirect3DRMMesh(iface);
 
-    FIXME("(%p)->(%u,%p): stub\n", This, id, value);
+    TRACE("(%p)->(%u,%p)\n", This, id, texture);
 
-    return E_NOTIMPL;
+    if (id >= This->nb_groups)
+        return D3DRMERR_BADVALUE;
+
+    if (This->groups[id].texture)
+        IDirect3DRMTexture3_Release(This->groups[id].texture);
+
+    if (!texture)
+    {
+        This->groups[id].texture = NULL;
+        return D3DRM_OK;
+    }
+
+    return IDirect3DRMTexture3_QueryInterface(texture, &IID_IDirect3DRMTexture, (LPVOID*)&This->groups[id].texture);
 }
 
 static DWORD WINAPI IDirect3DRMMeshImpl_GetGroupCount(IDirect3DRMMesh* iface)




More information about the wine-cvs mailing list