} 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;
};
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;
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);
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);
return hr;
}
- object->shader_handle = shader_handle;
-
TRACE("Created vertex declaration %p.\n", object);
*decl_ptr = (IDirect3DVertexDeclaration8 *)object;