[PATCH 5/5] d3drm: Implement IDirect3DRMMeshBuilderX_SetMaterial.

Christian Costa titan.costa at gmail.com
Tue Jun 5 15:45:44 CDT 2012


---
 dlls/d3drm/meshbuilder.c |   16 +++++++++++-----
 1 files changed, 11 insertions(+), 5 deletions(-)

diff --git a/dlls/d3drm/meshbuilder.c b/dlls/d3drm/meshbuilder.c
index e0a7d03..c4866ef 100644
--- a/dlls/d3drm/meshbuilder.c
+++ b/dlls/d3drm/meshbuilder.c
@@ -651,13 +651,13 @@ static HRESULT WINAPI IDirect3DRMMeshBuilder2Impl_SetTexture(IDirect3DRMMeshBuil
 }
 
 static HRESULT WINAPI IDirect3DRMMeshBuilder2Impl_SetMaterial(IDirect3DRMMeshBuilder2* iface,
-                                                              LPDIRECT3DRMMATERIAL pMaterial)
+                                                              LPDIRECT3DRMMATERIAL material)
 {
     IDirect3DRMMeshBuilderImpl *This = impl_from_IDirect3DRMMeshBuilder2(iface);
 
-    FIXME("(%p)->(%p): stub\n", This, pMaterial);
+    TRACE("(%p)->(%p)\n", This, material);
 
-    return E_NOTIMPL;
+    return IDirect3DRMMeshBuilder3_SetMaterial(&This->IDirect3DRMMeshBuilder3_iface, (LPDIRECT3DRMMATERIAL2)material);
 }
 
 static HRESULT WINAPI IDirect3DRMMeshBuilder2Impl_SetTextureTopology(IDirect3DRMMeshBuilder2* iface,
@@ -1793,9 +1793,15 @@ static HRESULT WINAPI IDirect3DRMMeshBuilder3Impl_SetMaterial(IDirect3DRMMeshBui
 {
     IDirect3DRMMeshBuilderImpl *This = impl_from_IDirect3DRMMeshBuilder3(iface);
 
-    FIXME("(%p)->(%p): stub\n", This, material);
+    TRACE("(%p)->(%p)\n", This, material);
 
-    return E_NOTIMPL;
+    if (This->material)
+        IDirect3DRMTexture2_Release(This->material);
+    if (material)
+        IDirect3DRMTexture2_AddRef(material);
+    This->material = material;
+
+    return D3DRM_OK;
 }
 
 static HRESULT WINAPI IDirect3DRMMeshBuilder3Impl_SetTextureTopology(IDirect3DRMMeshBuilder3* iface,




More information about the wine-patches mailing list