Christian Costa : d3drm: Set vertices data of the created mesh.
Alexandre Julliard
julliard at winehq.org
Wed May 23 13:22:54 CDT 2012
Module: wine
Branch: master
Commit: 63f39c9196f57b76bd0aa050990011500a979a58
URL: http://source.winehq.org/git/wine.git/?a=commit;h=63f39c9196f57b76bd0aa050990011500a979a58
Author: Christian Costa <titan.costa at gmail.com>
Date: Tue May 22 22:05:07 2012 +0200
d3drm: Set vertices data of the created mesh.
---
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-cvs
mailing list