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