Oliver Stieber : wined3d: Vertex declaration recording state.
Module: wine Branch: refs/heads/master Commit: 74e28a354f40bc1b03003056554883fb0c29b1de URL: http://source.winehq.org/git/?p=wine.git;a=commit;h=74e28a354f40bc1b03003056... Author: Oliver Stieber <oliver_stieber(a)yahoo.co.uk> Date: Fri Dec 16 12:38:24 2005 +0100 wined3d: Vertex declaration recording state. Stop SetVertexDeclaration from reference counting if a stateblock is being recorded. --- dlls/wined3d/device.c | 13 +++++++++---- 1 files changed, 9 insertions(+), 4 deletions(-) diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c index 0ca6031..ba2bb8d 100644 --- a/dlls/wined3d/device.c +++ b/dlls/wined3d/device.c @@ -3727,16 +3727,21 @@ HRESULT WINAPI IWineD3DDeviceImpl_SetVer TRACE("(%p) : pDecl=%p\n", This, pDecl); - /* TODO: what about recording stateblocks? */ + This->updateStateBlock->vertexDecl = pDecl; + This->updateStateBlock->changed.vertexDecl = TRUE; + This->updateStateBlock->set.vertexDecl = TRUE; + + if (This->isRecordingState) { + TRACE("Recording... not performing anything\n"); + return D3D_OK; + } + if (NULL != pDecl) { IWineD3DVertexDeclaration_AddRef(pDecl); } if (NULL != This->updateStateBlock->vertexDecl) { IWineD3DVertexDeclaration_Release(This->updateStateBlock->vertexDecl); } - This->updateStateBlock->vertexDecl = pDecl; - This->updateStateBlock->changed.vertexDecl = TRUE; - This->updateStateBlock->set.vertexDecl = TRUE; return D3D_OK; }
participants (1)
-
Alexandre Julliard