d3dcompiler: Implement D3DGetInputAndOutputSignatureBlob().

This commit is contained in:
Rico Schüller 2010-10-03 15:12:12 +02:00 committed by Alexandre Julliard
parent 164dcc7973
commit 4467901e31
4 changed files with 17 additions and 1 deletions

View File

@ -133,6 +133,10 @@ static BOOL check_blob_part(DWORD tag, D3D_BLOB_PART part)
if (tag == TAG_OSGN) add = TRUE; if (tag == TAG_OSGN) add = TRUE;
break; break;
case D3D_BLOB_INPUT_AND_OUTPUT_SIGNATURE_BLOB:
if (tag == TAG_ISGN || tag == TAG_OSGN) add = TRUE;
break;
default: default:
FIXME("Unhandled D3D_BLOB_PART %s.\n", debug_d3dcompiler_d3d_blob_part(part)); FIXME("Unhandled D3D_BLOB_PART %s.\n", debug_d3dcompiler_d3d_blob_part(part));
break; break;
@ -203,6 +207,10 @@ HRESULT d3dcompiler_get_blob_part(const void *data, SIZE_T data_size, D3D_BLOB_P
if (count != 1) count = 0; if (count != 1) count = 0;
break; break;
case D3D_BLOB_INPUT_AND_OUTPUT_SIGNATURE_BLOB:
if (count != 2) count = 0;
break;
default: default:
FIXME("Unhandled D3D_BLOB_PART %s.\n", debug_d3dcompiler_d3d_blob_part(part)); FIXME("Unhandled D3D_BLOB_PART %s.\n", debug_d3dcompiler_d3d_blob_part(part));
break; break;

View File

@ -8,7 +8,7 @@
@ stub D3DDisassemble @ stub D3DDisassemble
@ stdcall D3DGetBlobPart(ptr long long long ptr) @ stdcall D3DGetBlobPart(ptr long long long ptr)
@ stub D3DGetDebugInfo @ stub D3DGetDebugInfo
@ stub D3DGetInputAndOutputSignatureBlob @ stdcall D3DGetInputAndOutputSignatureBlob(ptr long ptr)
@ stdcall D3DGetInputSignatureBlob(ptr long ptr) @ stdcall D3DGetInputSignatureBlob(ptr long ptr)
@ stdcall D3DGetOutputSignatureBlob(ptr long ptr) @ stdcall D3DGetOutputSignatureBlob(ptr long ptr)
@ stdcall D3DPreprocess(ptr long str ptr ptr ptr ptr) @ stdcall D3DPreprocess(ptr long str ptr ptr ptr ptr)

View File

@ -102,3 +102,10 @@ HRESULT WINAPI D3DGetOutputSignatureBlob(const void *data, SIZE_T data_size, ID3
return d3dcompiler_get_blob_part(data, data_size, D3D_BLOB_OUTPUT_SIGNATURE_BLOB, 0, blob); return d3dcompiler_get_blob_part(data, data_size, D3D_BLOB_OUTPUT_SIGNATURE_BLOB, 0, blob);
} }
HRESULT WINAPI D3DGetInputAndOutputSignatureBlob(const void *data, SIZE_T data_size, ID3DBlob **blob)
{
TRACE("data %p, data_size %lu, blob %p\n", data, data_size, blob);
return d3dcompiler_get_blob_part(data, data_size, D3D_BLOB_INPUT_AND_OUTPUT_SIGNATURE_BLOB, 0, blob);
}

View File

@ -64,6 +64,7 @@ typedef enum D3D_BLOB_PART
HRESULT WINAPI D3DGetBlobPart(const void *data, SIZE_T data_size, D3D_BLOB_PART part, UINT flags, ID3DBlob **blob); HRESULT WINAPI D3DGetBlobPart(const void *data, SIZE_T data_size, D3D_BLOB_PART part, UINT flags, ID3DBlob **blob);
HRESULT WINAPI D3DGetInputSignatureBlob(const void *data, SIZE_T data_size, ID3DBlob **blob); HRESULT WINAPI D3DGetInputSignatureBlob(const void *data, SIZE_T data_size, ID3DBlob **blob);
HRESULT WINAPI D3DGetOutputSignatureBlob(const void *data, SIZE_T data_size, ID3DBlob **blob); HRESULT WINAPI D3DGetOutputSignatureBlob(const void *data, SIZE_T data_size, ID3DBlob **blob);
HRESULT WINAPI D3DGetInputAndOutputSignatureBlob(const void *data, SIZE_T data_size, ID3DBlob **blob);
HRESULT WINAPI D3DCreateBlob(SIZE_T data_size, ID3DBlob **blob); HRESULT WINAPI D3DCreateBlob(SIZE_T data_size, ID3DBlob **blob);