From b068615ef38c719cd5f7a309450d1180b40b11c6 Mon Sep 17 00:00:00 2001 From: Christian Costa Date: Tue, 22 May 2012 08:57:29 +0200 Subject: [PATCH] d3drm: Implement IDirect3DRMMesh_SetVertices. --- dlls/d3drm/meshbuilder.c | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/dlls/d3drm/meshbuilder.c b/dlls/d3drm/meshbuilder.c index 77b68e49899..357e285cb3d 100644 --- a/dlls/d3drm/meshbuilder.c +++ b/dlls/d3drm/meshbuilder.c @@ -2439,9 +2439,20 @@ static HRESULT WINAPI IDirect3DRMMeshImpl_SetVertices(IDirect3DRMMesh* iface, { IDirect3DRMMeshImpl *This = impl_from_IDirect3DRMMesh(iface); - FIXME("(%p)->(%u,%u,%u,%p): stub\n", This, id, index, count, values); + TRACE("(%p)->(%u,%u,%u,%p)\n", This, id, index, count, values); - return E_NOTIMPL; + if (id >= This->nb_groups) + return D3DRMERR_BADVALUE; + + if ((index + count - 1) >= This->groups[id].nb_vertices) + return D3DRMERR_BADVALUE; + + if (!values) + return E_POINTER; + + memcpy(This->groups[id].vertices + index, values, count * sizeof(D3DRMVERTEX)); + + return D3DRM_OK; } static HRESULT WINAPI IDirect3DRMMeshImpl_SetGroupColor(IDirect3DRMMesh* iface,