Module: wine Branch: master Commit: 27723affc9d6c2b611bd9684ad21c10ba657dfe8 URL: http://source.winehq.org/git/wine.git/?a=commit;h=27723affc9d6c2b611bd9684ad...
Author: Henri Verbeet hverbeet@codeweavers.com Date: Fri Sep 25 13:31:41 2009 +0200
d3d8: Set the vertex declaration's shader handle in vertexdeclaration_init().
---
dlls/d3d8/d3d8_private.h | 2 +- dlls/d3d8/vertexdeclaration.c | 3 ++- dlls/d3d8/vertexshader.c | 4 +--- 3 files changed, 4 insertions(+), 5 deletions(-)
diff --git a/dlls/d3d8/d3d8_private.h b/dlls/d3d8/d3d8_private.h index 8adc9e3..2218f31 100644 --- a/dlls/d3d8/d3d8_private.h +++ b/dlls/d3d8/d3d8_private.h @@ -542,7 +542,7 @@ typedef struct { } IDirect3DVertexDeclaration8Impl;
HRESULT vertexdeclaration_init(IDirect3DVertexDeclaration8Impl *declaration, - IDirect3DDevice8Impl *device, const DWORD *elements) DECLSPEC_HIDDEN; + IDirect3DDevice8Impl *device, const DWORD *elements, DWORD shader_handle) DECLSPEC_HIDDEN; HRESULT vertexdeclaration_init_fvf(IDirect3DVertexDeclaration8Impl *declaration, IDirect3DDevice8Impl *device, DWORD fvf) DECLSPEC_HIDDEN;
diff --git a/dlls/d3d8/vertexdeclaration.c b/dlls/d3d8/vertexdeclaration.c index fad58fb..1387a8c 100644 --- a/dlls/d3d8/vertexdeclaration.c +++ b/dlls/d3d8/vertexdeclaration.c @@ -376,7 +376,7 @@ static const struct wined3d_parent_ops d3d8_vertexdeclaration_wined3d_parent_ops };
HRESULT vertexdeclaration_init(IDirect3DVertexDeclaration8Impl *declaration, - IDirect3DDevice8Impl *device, const DWORD *elements) + IDirect3DDevice8Impl *device, const DWORD *elements, DWORD shader_handle) { WINED3DVERTEXELEMENT *wined3d_elements; UINT wined3d_element_count; @@ -384,6 +384,7 @@ HRESULT vertexdeclaration_init(IDirect3DVertexDeclaration8Impl *declaration,
declaration->lpVtbl = &Direct3DVertexDeclaration8_Vtbl; declaration->ref_count = 1; + declaration->shader_handle = shader_handle;
wined3d_element_count = convert_to_wined3d_declaration(elements, &declaration->elements_size, &wined3d_elements); declaration->elements = HeapAlloc(GetProcessHeap(), 0, declaration->elements_size); diff --git a/dlls/d3d8/vertexshader.c b/dlls/d3d8/vertexshader.c index aacf15c..92bd1fe 100644 --- a/dlls/d3d8/vertexshader.c +++ b/dlls/d3d8/vertexshader.c @@ -113,7 +113,7 @@ static HRESULT vertexshader_create_vertexdeclaration(IDirect3DDevice8Impl *devic return D3DERR_OUTOFVIDEOMEMORY; }
- hr = vertexdeclaration_init(object, device, declaration); + hr = vertexdeclaration_init(object, device, declaration, shader_handle); if (FAILED(hr)) { WARN("Failed to initialize vertex declaration, hr %#x.\n", hr); @@ -121,8 +121,6 @@ static HRESULT vertexshader_create_vertexdeclaration(IDirect3DDevice8Impl *devic return hr; }
- object->shader_handle = shader_handle; - TRACE("Created vertex declaration %p.\n", object); *decl_ptr = (IDirect3DVertexDeclaration8 *)object;