From a36f51b1b26b147db8abc6c8ea6bb3802c3955fb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rico=20Sch=C3=BCller?= Date: Tue, 12 Oct 2010 19:25:02 +0200 Subject: [PATCH] d3dcompiler: Add D3D_BLOB_XNA_SHADER to D3DGetBlobPart(). --- dlls/d3dcompiler_43/blob.c | 8 +++++++- dlls/d3dcompiler_43/d3dcompiler_private.h | 1 + 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/dlls/d3dcompiler_43/blob.c b/dlls/d3dcompiler_43/blob.c index daa4d261298..dc0a65f0fa9 100644 --- a/dlls/d3dcompiler_43/blob.c +++ b/dlls/d3dcompiler_43/blob.c @@ -157,6 +157,10 @@ static BOOL check_blob_part(DWORD tag, D3D_BLOB_PART part) if (tag == TAG_XNAP) add = TRUE; break; + case D3D_BLOB_XNA_SHADER: + if (tag == TAG_XNAS) add = TRUE; + break; + default: FIXME("Unhandled D3D_BLOB_PART %s.\n", debug_d3dcompiler_d3d_blob_part(part)); break; @@ -228,6 +232,7 @@ HRESULT d3dcompiler_get_blob_part(const void *data, SIZE_T data_size, D3D_BLOB_P case D3D_BLOB_DEBUG_INFO: case D3D_BLOB_LEGACY_SHADER: case D3D_BLOB_XNA_PREPASS_SHADER: + case D3D_BLOB_XNA_SHADER: if (count != 1) count = 0; break; @@ -253,7 +258,8 @@ HRESULT d3dcompiler_get_blob_part(const void *data, SIZE_T data_size, D3D_BLOB_P } /* some parts aren't full DXBCs, they contain only the data */ - if (count == 1 && (part == D3D_BLOB_DEBUG_INFO || part == D3D_BLOB_LEGACY_SHADER || part == D3D_BLOB_XNA_PREPASS_SHADER)) + if (count == 1 && (part == D3D_BLOB_DEBUG_INFO || part == D3D_BLOB_LEGACY_SHADER || part == D3D_BLOB_XNA_PREPASS_SHADER + || part == D3D_BLOB_XNA_SHADER)) { hr = D3DCreateBlob(dst_dxbc.sections[0].data_size, blob); if (SUCCEEDED(hr)) diff --git a/dlls/d3dcompiler_43/d3dcompiler_private.h b/dlls/d3dcompiler_43/d3dcompiler_private.h index 8e31b2d69dd..96dd16637db 100644 --- a/dlls/d3dcompiler_43/d3dcompiler_private.h +++ b/dlls/d3dcompiler_43/d3dcompiler_private.h @@ -587,6 +587,7 @@ void SlDeleteShader(struct bwriter_shader *shader); #define TAG_PCSG MAKE_TAG('P', 'C', 'S', 'G') #define TAG_SDBG MAKE_TAG('S', 'D', 'B', 'G') #define TAG_XNAP MAKE_TAG('X', 'N', 'A', 'P') +#define TAG_XNAS MAKE_TAG('X', 'N', 'A', 'S') struct dxbc_section {