From 63f39c9196f57b76bd0aa050990011500a979a58 Mon Sep 17 00:00:00 2001 From: Christian Costa Date: Tue, 22 May 2012 22:05:07 +0200 Subject: [PATCH] d3drm: Set vertices data of the created mesh. --- dlls/d3drm/meshbuilder.c | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/dlls/d3drm/meshbuilder.c b/dlls/d3drm/meshbuilder.c index 9b5e2cc814d..4d4da0f0137 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;