[PATCH 1/5] d3drm: Set vertices data of the created mesh.

Christian Costa titan.costa at gmail.com
Tue May 22 15:05:07 CDT 2012


---
 dlls/d3drm/meshbuilder.c |   22 ++++++++++++++++++++--
 1 files changed, 20 insertions(+), 2 deletions(-)

diff --git a/dlls/d3drm/meshbuilder.c b/dlls/d3drm/meshbuilder.c
index 9b5e2cc..4d4da0f 100644
--- a/dlls/d3drm/meshbuilder.c
+++ b/dlls/d3drm/meshbuilder.c
@@ -1856,10 +1856,28 @@ static HRESULT WINAPI IDirect3DRMMeshBuilder3Impl_CreateMesh(IDirect3DRMMeshBuil
         }
 
         hr = IDirect3DRMMesh_AddGroup(*mesh, This->nb_vertices, This->nb_faces, 0, face_data, &group);
+        HeapFree(GetProcessHeap(), 0, face_data);
+        if (SUCCEEDED(hr))
+        {
+            D3DRMVERTEX* vertices;
+
+            vertices = HeapAlloc(GetProcessHeap(), 0, This->nb_vertices * sizeof(D3DRMVERTEX));
+            if (vertices)
+            {
+                for (i = 0; i < This->nb_vertices; i++)
+                {
+                    vertices[i].position = This->pVertices[i];
+                }
+                hr = IDirect3DRMMesh_SetVertices(*mesh, 0, 0, This->nb_vertices, vertices);
+                HeapFree(GetProcessHeap(), 0, vertices);
+            }
+            else
+            {
+                hr = E_OUTOFMEMORY;
+            }
+        }
         if (FAILED(hr))
             IDirect3DRMMesh_Release(*mesh);
-
-        HeapFree(GetProcessHeap(), 0, face_data);
     }
 
     return hr;




More information about the wine-patches mailing list