Module: wine Branch: refs/heads/master Commit: c6515ab3072cc0b527bd0cbca970c3c59b64f397 URL: http://source.winehq.org/git/?p=wine.git;a=commit;h=c6515ab3072cc0b527bd0cbc...
Author: H. Verbeet hverbeet@gmail.com Date: Mon Feb 6 11:32:13 2006 +0100
wined3d: Update refcounts when storing references in IWineD3DStateBlockImpl_Capture. Move TRACEs to the top of their code blocks.
---
dlls/wined3d/stateblock.c | 29 +++++++++++++++++++++++++++-- 1 files changed, 27 insertions(+), 2 deletions(-)
diff --git a/dlls/wined3d/stateblock.c b/dlls/wined3d/stateblock.c index c1e3e94..1ef2a52 100644 --- a/dlls/wined3d/stateblock.c +++ b/dlls/wined3d/stateblock.c @@ -148,8 +148,16 @@ HRESULT WINAPI IWineD3DStateBlockImpl_Ca
/* Recorded => Only update 'changed' values */ if (This->vertexShader != targetStateBlock->vertexShader) { + TRACE("Updating vertex shader from %p to %p\n", This->vertexShader, targetStateBlock->vertexShader); + + if (targetStateBlock->vertexShader) { + IWineD3DVertexShader_AddRef(targetStateBlock->vertexShader); + } + if (This->vertexShader) { + IWineD3DVertexShader_Release(This->vertexShader); + } + This->vertexShader = targetStateBlock->vertexShader; - TRACE("Updating vertex shader to %p\n", targetStateBlock->vertexShader); }
/* Vertex Shader Constants */ @@ -204,8 +212,16 @@ HRESULT WINAPI IWineD3DStateBlockImpl_Ca
/* Recorded => Only update 'changed' values */ if (This->pixelShader != targetStateBlock->pixelShader) { + TRACE("Updating pixel shader from %p to %p\n", This->pixelShader, targetStateBlock->pixelShader); + + if (targetStateBlock->pixelShader) { + IWineD3DPixelShader_AddRef(targetStateBlock->pixelShader); + } + if (This->pixelShader) { + IWineD3DPixelShader_Release(This->pixelShader); + } + This->pixelShader = targetStateBlock->pixelShader; - TRACE("Updating pixrl shader to %p\n", targetStateBlock->pixelShader); }
/* Pixel Shader Constants */ @@ -244,6 +260,15 @@ HRESULT WINAPI IWineD3DStateBlockImpl_Ca }
if(This->set.vertexDecl && This->vertexDecl != targetStateBlock->vertexDecl){ + TRACE("Updating vertex declaration from %p to %p\n", This->vertexDecl, targetStateBlock->vertexDecl); + + if (targetStateBlock->vertexDecl) { + IWineD3DVertexDeclaration_AddRef(targetStateBlock->vertexDecl); + } + if (This->vertexDecl) { + IWineD3DVertexDeclaration_Release(This->vertexDecl); + } + This->vertexDecl = targetStateBlock->vertexDecl; }