Christian Costa : d3drm: Init vertices before creating group.
Alexandre Julliard
julliard at winehq.org
Wed Oct 31 17:17:21 CDT 2012
Module: wine
Branch: master
Commit: 43d3ba36a1c31ffa8f365eaadcccfd727f8a6020
URL: http://source.winehq.org/git/wine.git/?a=commit;h=43d3ba36a1c31ffa8f365eaadcccfd727f8a6020
Author: Christian Costa <titan.costa at gmail.com>
Date: Wed Oct 31 09:56:07 2012 +0100
d3drm: Init vertices before creating group.
---
dlls/d3drm/meshbuilder.c | 30 ++++++++++++------------------
1 files changed, 12 insertions(+), 18 deletions(-)
diff --git a/dlls/d3drm/meshbuilder.c b/dlls/d3drm/meshbuilder.c
index 87ff35c..c28cefd 100644
--- a/dlls/d3drm/meshbuilder.c
+++ b/dlls/d3drm/meshbuilder.c
@@ -2081,6 +2081,18 @@ static HRESULT WINAPI IDirect3DRMMeshBuilder3Impl_CreateMesh(IDirect3DRMMeshBuil
unsigned* out_ptr;
DWORD* in_ptr = This->pFaceData;
int i, j;
+ D3DRMVERTEX* vertices;
+
+ vertices = HeapAlloc(GetProcessHeap(), 0, This->nb_vertices * sizeof(D3DRMVERTEX));
+ if (!vertices)
+ {
+ IDirect3DRMMesh_Release(*mesh);
+ return E_OUTOFMEMORY;
+ }
+ 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);
face_data = HeapAlloc(GetProcessHeap(), 0, This->face_data_size * sizeof(DWORD));
if (!face_data)
@@ -2121,25 +2133,7 @@ static HRESULT WINAPI IDirect3DRMMeshBuilder3Impl_CreateMesh(IDirect3DRMMeshBuil
hr = IDirect3DRMMesh_AddGroup(*mesh, This->nb_vertices, This->nb_faces, vertex_per_face, 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 (SUCCEEDED(hr))
hr = IDirect3DRMMesh_SetGroupColor(*mesh, 0, This->color);
if (SUCCEEDED(hr))
More information about the wine-cvs
mailing list