wined3d: Add the output signature to IWineD3DDevice_CreateVertexShader().
This commit is contained in:
parent
2153b4d998
commit
f0e303b0f2
@ -1789,7 +1789,7 @@ static HRESULT WINAPI IDirect3DDevice8Impl_CreateVertexShader(LPDIRECT3DDEVICE8
|
|||||||
{
|
{
|
||||||
/* Usage is missing ... Use SetRenderState to set the sw vp render state in SetVertexShader */
|
/* Usage is missing ... Use SetRenderState to set the sw vp render state in SetVertexShader */
|
||||||
hrc = IWineD3DDevice_CreateVertexShader(This->WineD3DDevice, wined3d_vertex_declaration,
|
hrc = IWineD3DDevice_CreateVertexShader(This->WineD3DDevice, wined3d_vertex_declaration,
|
||||||
pFunction, &object->wineD3DVertexShader, (IUnknown *)object);
|
pFunction, NULL /* output signature */, &object->wineD3DVertexShader, (IUnknown *)object);
|
||||||
|
|
||||||
if (FAILED(hrc))
|
if (FAILED(hrc))
|
||||||
{
|
{
|
||||||
|
@ -126,7 +126,8 @@ HRESULT WINAPI IDirect3DDevice9Impl_CreateVertexShader(LPDIRECT3DDEVICE9EX iface
|
|||||||
object->ref = 1;
|
object->ref = 1;
|
||||||
object->lpVtbl = &Direct3DVertexShader9_Vtbl;
|
object->lpVtbl = &Direct3DVertexShader9_Vtbl;
|
||||||
EnterCriticalSection(&d3d9_cs);
|
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);
|
LeaveCriticalSection(&d3d9_cs);
|
||||||
|
|
||||||
if (FAILED(hrc)) {
|
if (FAILED(hrc)) {
|
||||||
|
@ -2328,7 +2328,11 @@ static HRESULT WINAPI IWineD3DDeviceImpl_CreateVertexDeclarationFromFVF(IWineD3D
|
|||||||
return WINED3D_OK;
|
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;
|
IWineD3DDeviceImpl *This = (IWineD3DDeviceImpl *)iface;
|
||||||
IWineD3DVertexShaderImpl *object; /* NOTE: impl usage is ok, this is a create */
|
IWineD3DVertexShaderImpl *object; /* NOTE: impl usage is ok, this is a create */
|
||||||
HRESULT hr = WINED3D_OK;
|
HRESULT hr = WINED3D_OK;
|
||||||
@ -2355,7 +2359,7 @@ static HRESULT WINAPI IWineD3DDeviceImpl_CreateVertexShader(IWineD3DDevice *ifac
|
|||||||
IWineD3DVertexShader_FakeSemantics(*ppVertexShader, vertex_declaration);
|
IWineD3DVertexShader_FakeSemantics(*ppVertexShader, vertex_declaration);
|
||||||
}
|
}
|
||||||
|
|
||||||
hr = IWineD3DVertexShader_SetFunction(*ppVertexShader, pFunction, NULL);
|
hr = IWineD3DVertexShader_SetFunction(*ppVertexShader, pFunction, output_signature);
|
||||||
if (FAILED(hr))
|
if (FAILED(hr))
|
||||||
{
|
{
|
||||||
WARN("(%p) : Failed to set function, returning %#x\n", iface, hr);
|
WARN("(%p) : Failed to set function, returning %#x\n", iface, hr);
|
||||||
|
@ -3013,6 +3013,7 @@ interface IWineD3DDevice : IWineD3DBase
|
|||||||
HRESULT CreateVertexShader(
|
HRESULT CreateVertexShader(
|
||||||
[in] IWineD3DVertexDeclaration *declaration,
|
[in] IWineD3DVertexDeclaration *declaration,
|
||||||
[in] const DWORD *function,
|
[in] const DWORD *function,
|
||||||
|
[in] const struct wined3d_shader_signature *output_signature,
|
||||||
[out] IWineD3DVertexShader **shader,
|
[out] IWineD3DVertexShader **shader,
|
||||||
[in] IUnknown *parent
|
[in] IUnknown *parent
|
||||||
);
|
);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user