Module: wine Branch: master Commit: 33c7a865cb9087f2c0fc289211e0d7e216a1aee4 URL: http://source.winehq.org/git/wine.git/?a=commit;h=33c7a865cb9087f2c0fc289211...
Author: André Hentschel nerv@dawncrow.de Date: Fri Jan 13 00:22:04 2012 +0100
d3drm: Implement GetVertices for IDirect3DRMMeshBuilder3.
---
dlls/d3drm/meshbuilder.c | 14 ++++++++++---- dlls/d3drm/tests/d3drm.c | 4 ++-- 2 files changed, 12 insertions(+), 6 deletions(-)
diff --git a/dlls/d3drm/meshbuilder.c b/dlls/d3drm/meshbuilder.c index 409e659..34a8d4c 100644 --- a/dlls/d3drm/meshbuilder.c +++ b/dlls/d3drm/meshbuilder.c @@ -1845,14 +1845,20 @@ static HRESULT WINAPI IDirect3DRMMeshBuilder3Impl_SetVertices(IDirect3DRMMeshBui }
static HRESULT WINAPI IDirect3DRMMeshBuilder3Impl_GetVertices(IDirect3DRMMeshBuilder3* iface, - DWORD IndexFirst, LPDWORD count, - LPD3DVECTOR vector) + DWORD IndexFirst, LPDWORD vcount, + LPD3DVECTOR vertices) { IDirect3DRMMeshBuilderImpl *This = impl_from_IDirect3DRMMeshBuilder3(iface); + DWORD count = This->nb_vertices - IndexFirst;
- FIXME("(%p)->(%u,%p,%p): stub\n", This, IndexFirst, count, vector); + TRACE("(%p)->(%u,%p,%p)\n", This, IndexFirst, vcount, vertices);
- return E_NOTIMPL; + if (vcount) + *vcount = count; + if (vertices && This->nb_vertices) + memcpy(vertices, This->pVertices + IndexFirst, count * sizeof(D3DVECTOR)); + + return D3DRM_OK; }
static HRESULT WINAPI IDirect3DRMMeshBuilder3Impl_SetNormals(IDirect3DRMMeshBuilder3* iface, diff --git a/dlls/d3drm/tests/d3drm.c b/dlls/d3drm/tests/d3drm.c index d4bb77d..f021e2c 100644 --- a/dlls/d3drm/tests/d3drm.c +++ b/dlls/d3drm/tests/d3drm.c @@ -208,8 +208,8 @@ static void test_MeshBuilder3(void) ok(val == 3, "Wrong number of faces %d (must be 3)\n", val);
hr = IDirect3DRMMeshBuilder3_GetVertices(pMeshBuilder3, 0, &val1, NULL); - todo_wine ok(hr == D3DRM_OK, "Cannot get vertices information (hr = %x)\n", hr); - todo_wine ok(val1 == 4, "Wrong number of vertices %d (must be 4)\n", val1); + ok(hr == D3DRM_OK, "Cannot get vertices information (hr = %x)\n", hr); + ok(val1 == 4, "Wrong number of vertices %d (must be 4)\n", val1);
valu = 1.23f; valv = 3.21f;