d3dcompiler: Implement D3DGetOutputSignatureBlob().

oldstable
Rico Schüller 2010-10-03 15:12:06 +02:00 committed by Alexandre Julliard
parent 5946201d19
commit 164dcc7973
5 changed files with 15 additions and 1 deletions

View File

@ -129,6 +129,10 @@ static BOOL check_blob_part(DWORD tag, D3D_BLOB_PART part)
if (tag == TAG_ISGN) add = TRUE;
break;
case D3D_BLOB_OUTPUT_SIGNATURE_BLOB:
if (tag == TAG_OSGN) add = TRUE;
break;
default:
FIXME("Unhandled D3D_BLOB_PART %s.\n", debug_d3dcompiler_d3d_blob_part(part));
break;
@ -195,6 +199,7 @@ HRESULT d3dcompiler_get_blob_part(const void *data, SIZE_T data_size, D3D_BLOB_P
switch(part)
{
case D3D_BLOB_INPUT_SIGNATURE_BLOB:
case D3D_BLOB_OUTPUT_SIGNATURE_BLOB:
if (count != 1) count = 0;
break;

View File

@ -10,7 +10,7 @@
@ stub D3DGetDebugInfo
@ stub D3DGetInputAndOutputSignatureBlob
@ stdcall D3DGetInputSignatureBlob(ptr long ptr)
@ stub D3DGetOutputSignatureBlob
@ stdcall D3DGetOutputSignatureBlob(ptr long ptr)
@ stdcall D3DPreprocess(ptr long str ptr ptr ptr ptr)
@ stub D3DReflect
@ stub D3DReturnFailure1

View File

@ -95,3 +95,10 @@ HRESULT WINAPI D3DGetInputSignatureBlob(const void *data, SIZE_T data_size, ID3D
return d3dcompiler_get_blob_part(data, data_size, D3D_BLOB_INPUT_SIGNATURE_BLOB, 0, blob);
}
HRESULT WINAPI D3DGetOutputSignatureBlob(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_OUTPUT_SIGNATURE_BLOB, 0, blob);
}

View File

@ -582,6 +582,7 @@ void SlDeleteShader(struct bwriter_shader *shader);
((DWORD)(ch2) << 16) | ((DWORD)(ch3) << 24 ))
#define TAG_DXBC MAKE_TAG('D', 'X', 'B', 'C')
#define TAG_ISGN MAKE_TAG('I', 'S', 'G', 'N')
#define TAG_OSGN MAKE_TAG('O', 'S', 'G', 'N')
struct dxbc_section
{

View File

@ -63,6 +63,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 D3DGetInputSignatureBlob(const void *data, SIZE_T data_size, ID3DBlob **blob);
HRESULT WINAPI D3DGetOutputSignatureBlob(const void *data, SIZE_T data_size, ID3DBlob **blob);
HRESULT WINAPI D3DCreateBlob(SIZE_T data_size, ID3DBlob **blob);