wined3d: Add the output signature to IWineD3DDevice_CreateVertexShader().
Henri Verbeet
hverbeet at codeweavers.com
Tue May 26 02:15:12 CDT 2009
---
dlls/d3d8/device.c | 2 +-
dlls/d3d9/vertexshader.c | 3 ++-
dlls/wined3d/device.c | 8 ++++++--
include/wine/wined3d.idl | 1 +
4 files changed, 10 insertions(+), 4 deletions(-)
diff --git a/dlls/d3d8/device.c b/dlls/d3d8/device.c
index 206697d..4b24ac8 100644
--- a/dlls/d3d8/device.c
+++ b/dlls/d3d8/device.c
@@ -1789,7 +1789,7 @@ static HRESULT WINAPI IDirect3DDevice8Impl_CreateVertexShader(LPDIRECT3DDEVICE8
{
/* Usage is missing ... Use SetRenderState to set the sw vp render state in SetVertexShader */
hrc = IWineD3DDevice_CreateVertexShader(This->WineD3DDevice, wined3d_vertex_declaration,
- pFunction, &object->wineD3DVertexShader, (IUnknown *)object);
+ pFunction, NULL /* output signature */, &object->wineD3DVertexShader, (IUnknown *)object);
if (FAILED(hrc))
{
diff --git a/dlls/d3d9/vertexshader.c b/dlls/d3d9/vertexshader.c
index fd2837d..c138690 100644
--- a/dlls/d3d9/vertexshader.c
+++ b/dlls/d3d9/vertexshader.c
@@ -126,7 +126,8 @@ HRESULT WINAPI IDirect3DDevice9Impl_CreateVertexShader(LPDIRECT3DDEVICE9EX iface
object->ref = 1;
object->lpVtbl = &Direct3DVertexShader9_Vtbl;
EnterCriticalSection(&d3d9_cs);
- hrc= IWineD3DDevice_CreateVertexShader(This->WineD3DDevice, NULL /* declaration */, pFunction, &object->wineD3DVertexShader, (IUnknown *)object);
+ hrc= IWineD3DDevice_CreateVertexShader(This->WineD3DDevice, NULL /* declaration */, pFunction,
+ NULL /* output signature */, &object->wineD3DVertexShader, (IUnknown *)object);
LeaveCriticalSection(&d3d9_cs);
if (FAILED(hrc)) {
diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
index a7cb788..91a0266 100644
--- a/dlls/wined3d/device.c
+++ b/dlls/wined3d/device.c
@@ -2328,7 +2328,11 @@ static HRESULT WINAPI IWineD3DDeviceImpl_CreateVertexDeclarationFromFVF(IWineD3D
return WINED3D_OK;
}
-static HRESULT WINAPI IWineD3DDeviceImpl_CreateVertexShader(IWineD3DDevice *iface, IWineD3DVertexDeclaration *vertex_declaration, CONST DWORD *pFunction, IWineD3DVertexShader **ppVertexShader, IUnknown *parent) {
+static HRESULT WINAPI IWineD3DDeviceImpl_CreateVertexShader(IWineD3DDevice *iface,
+ IWineD3DVertexDeclaration *vertex_declaration, const DWORD *pFunction,
+ const struct wined3d_shader_signature *output_signature,
+ IWineD3DVertexShader **ppVertexShader, IUnknown *parent)
+{
IWineD3DDeviceImpl *This = (IWineD3DDeviceImpl *)iface;
IWineD3DVertexShaderImpl *object; /* NOTE: impl usage is ok, this is a create */
HRESULT hr = WINED3D_OK;
@@ -2355,7 +2359,7 @@ static HRESULT WINAPI IWineD3DDeviceImpl_CreateVertexShader(IWineD3DDevice *ifac
IWineD3DVertexShader_FakeSemantics(*ppVertexShader, vertex_declaration);
}
- hr = IWineD3DVertexShader_SetFunction(*ppVertexShader, pFunction, NULL);
+ hr = IWineD3DVertexShader_SetFunction(*ppVertexShader, pFunction, output_signature);
if (FAILED(hr))
{
WARN("(%p) : Failed to set function, returning %#x\n", iface, hr);
diff --git a/include/wine/wined3d.idl b/include/wine/wined3d.idl
index 7a476e8..7c875e4 100644
--- a/include/wine/wined3d.idl
+++ b/include/wine/wined3d.idl
@@ -3013,6 +3013,7 @@ interface IWineD3DDevice : IWineD3DBase
HRESULT CreateVertexShader(
[in] IWineD3DVertexDeclaration *declaration,
[in] const DWORD *function,
+ [in] const struct wined3d_shader_signature *output_signature,
[out] IWineD3DVertexShader **shader,
[in] IUnknown *parent
);
--
1.6.0.6
--------------090001020204030507080904--
More information about the wine-patches
mailing list