49 IUnknown_AddRef(iface);
92 TRACE(
"iface %p\n", iface);
101 TRACE(
"iface %p\n", iface);
121 blob->size = data_size;
126 ERR(
"Failed to allocate D3D blob data memory\n");
138 TRACE(
"data_size %Iu, blob %p.\n", data_size,
blob);
142 WARN(
"Invalid blob specified.\n");
146 object =
calloc(1,
sizeof(*
object));
153 WARN(
"Failed to initialize blob, hr %#lx.\n",
hr);
158 *
blob = &
object->ID3DBlob_iface;
223 unsigned int section_count,
i;
229 WARN(
"Invalid arguments: data %p, data_size %Iu, flags %#x, blob %p.\n",
data, data_size,
flags,
blob);
242 WARN(
"Failed to parse source data, ret %d.\n",
ret);
248 ERR(
"Failed to allocate sections memory.\n");
258 sections[section_count++] = *src_section;
270 if (section_count != 1)
275 if (section_count != 2)
280 if (section_count != 3)
291 WARN(
"Nothing to write into the blob.\n");
304 WARN(
"Failed to serialise DXBC, ret %d.\n",
ret);
310 WARN(
"Failed to create blob, hr %#lx.\n",
hr);
355 unsigned int section_count,
i;
361 WARN(
"NULL for blob specified\n");
367 WARN(
"Invalid arguments: data %p, data_size %Iu.\n",
data, data_size);
373 WARN(
"Failed to parse source data, ret %d.\n",
ret);
380 ERR(
"Failed to allocate sections memory.\n");
390 sections[section_count++] = *src_section;
395 WARN(
"Failed to serialise DXBC, ret %d.\n",
ret);
401 WARN(
"Failed to create blob, hr %#lx.\n",
hr);
415 TRACE(
"data %p, data_size %Iu, part %s, flags %#x, blob %p.\n",
data,
423 TRACE(
"data %p, data_size %Iu, blob %p.\n",
data, data_size,
blob);
430 TRACE(
"data %p, data_size %Iu, blob %p.\n",
data, data_size,
blob);
437 TRACE(
"data %p, data_size %Iu, blob %p.\n",
data, data_size,
blob);
444 TRACE(
"data %p, data_size %Iu, blob %p.\n",
data, data_size,
blob);
477 if (!(
object =
calloc(1,
sizeof(*
object))))
485 WARN(
"Failed to initialise blob, hr %#lx.\n",
hr);
493 WARN(
"Failed to read file contents.\n");
500 object->size = read_size;
502 *
contents = &
object->ID3DBlob_iface;
523 data_size = ID3D10Blob_GetBufferSize(
blob);
526 if (!
ret || data_size != written_size)
528 WARN(
"Failed to write blob contents.\n");
#define InterlockedIncrement
#define InterlockedDecrement
#define WINE_DEFAULT_DEBUG_CHANNEL(t)
#define STDMETHODCALLTYPE
#define D3DERR_INVALIDCALL
@ D3D_BLOB_ALL_SIGNATURE_BLOB
@ D3D_BLOB_INPUT_AND_OUTPUT_SIGNATURE_BLOB
@ D3D_BLOB_TEST_COMPILE_PERF
@ D3D_BLOB_PATCH_CONSTANT_SIGNATURE_BLOB
@ D3D_BLOB_INPUT_SIGNATURE_BLOB
@ D3D_BLOB_OUTPUT_SIGNATURE_BLOB
@ D3D_BLOB_XNA_PREPASS_SHADER
@ D3DCOMPILER_STRIP_TEST_BLOBS
@ D3DCOMPILER_STRIP_DEBUG_INFO
@ D3DCOMPILER_STRIP_REFLECTION_DATA
const char * debug_d3dcompiler_d3d_blob_part(D3D_BLOB_PART part)
static BOOL check_blob_strip(DWORD tag, UINT flags)
HRESULT WINAPI D3DGetInputSignatureBlob(const void *data, SIZE_T data_size, ID3DBlob **blob)
static HRESULT d3dcompiler_strip_shader(const void *data, SIZE_T data_size, UINT flags, ID3DBlob **blob)
HRESULT WINAPI D3DGetBlobPart(const void *data, SIZE_T data_size, D3D_BLOB_PART part, UINT flags, ID3DBlob **blob)
static struct d3dcompiler_blob * impl_from_ID3DBlob(ID3DBlob *iface)
HRESULT WINAPI D3DWriteBlobToFile(ID3DBlob *blob, const WCHAR *filename, BOOL overwrite)
HRESULT WINAPI D3DCreateBlob(SIZE_T data_size, ID3DBlob **blob)
HRESULT WINAPI D3DGetOutputSignatureBlob(const void *data, SIZE_T data_size, ID3DBlob **blob)
HRESULT WINAPI D3DGetDebugInfo(const void *data, SIZE_T data_size, ID3DBlob **blob)
static HRESULT d3dcompiler_blob_init(struct d3dcompiler_blob *blob, SIZE_T data_size)
HRESULT WINAPI D3DGetInputAndOutputSignatureBlob(const void *data, SIZE_T data_size, ID3DBlob **blob)
static HRESULT d3dcompiler_get_blob_part(const void *data, SIZE_T data_size, D3D_BLOB_PART part, UINT flags, ID3DBlob **blob)
static SIZE_T STDMETHODCALLTYPE d3dcompiler_blob_GetBufferSize(ID3DBlob *iface)
static ULONG STDMETHODCALLTYPE d3dcompiler_blob_Release(ID3DBlob *iface)
static void *STDMETHODCALLTYPE d3dcompiler_blob_GetBufferPointer(ID3DBlob *iface)
HRESULT WINAPI D3DStripShader(const void *data, SIZE_T data_size, UINT flags, ID3D10Blob **blob)
static HRESULT STDMETHODCALLTYPE d3dcompiler_blob_QueryInterface(ID3DBlob *iface, REFIID riid, void **object)
static BOOL check_blob_part(DWORD tag, D3D_BLOB_PART part)
static const struct ID3D10BlobVtbl d3dcompiler_blob_vtbl
HRESULT WINAPI D3DReadFileToBlob(const WCHAR *filename, ID3DBlob **contents)
static ULONG STDMETHODCALLTYPE d3dcompiler_blob_AddRef(ID3DBlob *iface)
#define ReadFile(a, b, c, d, e)
#define INVALID_HANDLE_VALUE
#define FILE_ATTRIBUTE_NORMAL
DWORD WINAPI GetFileSize(HANDLE hFile, LPDWORD lpFileSizeHigh)
BOOL WINAPI WriteFile(_In_ HANDLE hFile, _In_reads_bytes_opt_(nNumberOfBytesToWrite) LPCVOID lpBuffer, _In_ DWORD nNumberOfBytesToWrite, _Out_opt_ LPDWORD lpNumberOfBytesWritten, _Inout_opt_ LPOVERLAPPED lpOverlapped)
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
#define memcpy(s1, s2, n)
struct section sections[2]
static const char * contents
#define IsEqualGUID(rguid1, rguid2)
static __inline const char * debugstr_fourcc(unsigned int cc)
struct vkd3d_shader_dxbc_section_desc * sections
#define CONTAINING_RECORD(address, type, field)
VKD3D_SHADER_API void vkd3d_shader_free_shader_code(struct vkd3d_shader_code *code)
VKD3D_SHADER_API int vkd3d_shader_serialize_dxbc(size_t section_count, const struct vkd3d_shader_dxbc_section_desc *sections, struct vkd3d_shader_code *dxbc, char **messages)
VKD3D_SHADER_API void vkd3d_shader_free_dxbc(struct vkd3d_shader_dxbc_desc *dxbc)
VKD3D_SHADER_API int vkd3d_shader_parse_dxbc(const struct vkd3d_shader_code *dxbc, uint32_t flags, struct vkd3d_shader_dxbc_desc *desc, char **messages)
DWORD WINAPI GetLastError(void)
#define INVALID_FILE_SIZE
static HRESULT HRESULT_FROM_WIN32(unsigned int x)