ReactOS 0.4.17-dev-966-gf06eace
d3dcompiler.h File Reference
#include "d3d11shader.h"
#include "d3d12shader.h"
Include dependency graph for d3dcompiler.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Macros

#define D3DCOMPILER_DLL_A   "d3dcompiler_47.dll"
 
#define D3DCOMPILER_DLL   WINELIB_NAME_AW(D3DCOMPILER_DLL_)
 
#define D3DCOMPILE_DEBUG   0x00000001
 
#define D3DCOMPILE_SKIP_VALIDATION   0x00000002
 
#define D3DCOMPILE_SKIP_OPTIMIZATION   0x00000004
 
#define D3DCOMPILE_PACK_MATRIX_ROW_MAJOR   0x00000008
 
#define D3DCOMPILE_PACK_MATRIX_COLUMN_MAJOR   0x00000010
 
#define D3DCOMPILE_PARTIAL_PRECISION   0x00000020
 
#define D3DCOMPILE_FORCE_VS_SOFTWARE_NO_OPT   0x00000040
 
#define D3DCOMPILE_FORCE_PS_SOFTWARE_NO_OPT   0x00000080
 
#define D3DCOMPILE_NO_PRESHADER   0x00000100
 
#define D3DCOMPILE_AVOID_FLOW_CONTROL   0x00000200
 
#define D3DCOMPILE_PREFER_FLOW_CONTROL   0x00000400
 
#define D3DCOMPILE_ENABLE_STRICTNESS   0x00000800
 
#define D3DCOMPILE_ENABLE_BACKWARDS_COMPATIBILITY   0x00001000
 
#define D3DCOMPILE_IEEE_STRICTNESS   0x00002000
 
#define D3DCOMPILE_OPTIMIZATION_LEVEL0   0x00004000
 
#define D3DCOMPILE_OPTIMIZATION_LEVEL1   0x00000000
 
#define D3DCOMPILE_OPTIMIZATION_LEVEL2   0x0000c000
 
#define D3DCOMPILE_OPTIMIZATION_LEVEL3   0x00008000
 
#define D3DCOMPILE_RESERVED16   0x00010000
 
#define D3DCOMPILE_RESERVED17   0x00020000
 
#define D3DCOMPILE_WARNINGS_ARE_ERRORS   0x00040000
 
#define D3DCOMPILE_RESOURCES_MAY_ALIAS   0x00080000
 
#define D3DCOMPILE_ENABLE_UNBOUNDED_DESCRIPTOR_TABLES   0x00100000
 
#define D3DCOMPILE_ALL_RESOURCES_BOUND   0x00200000
 
#define D3DCOMPILE_DEBUG_NAME_FOR_SOURCE   0x00400000
 
#define D3DCOMPILE_DEBUG_NAME_FOR_BINARY   0x00800000
 
#define D3DCOMPILE_EFFECT_CHILD_EFFECT   0x00000001
 
#define D3DCOMPILE_EFFECT_ALLOW_SLOW_OPS   0x00000002
 
#define D3DCOMPILE_FLAGS2_FORCE_ROOT_SIGNATURE_LATEST   0x00000000
 
#define D3DCOMPILE_FLAGS2_FORCE_ROOT_SIGNATURE_1_0   0x00000010
 
#define D3DCOMPILE_FLAGS2_FORCE_ROOT_SIGNATURE_1_1   0x00000020
 
#define D3D_DISASM_ENABLE_COLOR_CODE   0x00000001
 
#define D3D_DISASM_ENABLE_DEFAULT_VALUE_PRINTS   0x00000002
 
#define D3D_DISASM_ENABLE_INSTRUCTION_NUMBERING   0x00000004
 
#define D3D_DISASM_ENABLE_INSTRUCTION_CYCLE   0x00000008
 
#define D3D_DISASM_DISABLE_DEBUG_INFO   0x00000010
 
#define D3D_DISASM_ENABLE_INSTRUCTION_OFFSET   0x00000020
 
#define D3D_DISASM_INSTRUCTION_ONLY   0x00000040
 
#define D3D_DISASM_PRINT_HEX_LITERALS   0x00000080
 
#define D3D_COMPILE_STANDARD_FILE_INCLUDE   ((ID3DInclude *)(UINT_PTR)1)
 

Typedefs

typedef HRESULT(WINAPI * pD3DCompile) (const void *data, SIZE_T data_size, const char *filename, const D3D_SHADER_MACRO *defines, ID3DInclude *include, const char *entrypoint, const char *target, UINT sflags, UINT eflags, ID3DBlob **shader, ID3DBlob **error_messages)
 
typedef enum D3DCOMPILER_STRIP_FLAGS D3DCOMPILER_STRIP_FLAGS
 
typedef enum D3D_BLOB_PART D3D_BLOB_PART
 
typedef HRESULT(WINAPI * pD3DDisassemble) (const void *data, SIZE_T data_size, UINT flags, const char *comments, ID3DBlob **disassembly)
 
typedef HRESULT(WINAPI * pD3DPreprocess) (const void *data, SIZE_T size, const char *filename, const D3D_SHADER_MACRO *defines, ID3DInclude *include, ID3DBlob **shader, ID3DBlob **error_messages)
 

Enumerations

enum  D3DCOMPILER_STRIP_FLAGS {
  D3DCOMPILER_STRIP_REFLECTION_DATA = 0x1 , D3DCOMPILER_STRIP_DEBUG_INFO = 0x2 , D3DCOMPILER_STRIP_TEST_BLOBS = 0x4 , D3DCOMPILER_STRIP_PRIVATE_DATA = 0x8 ,
  D3DCOMPILER_STRIP_ROOT_SIGNATURE = 0x10 , D3DCOMPILER_STRIP_FORCE_DWORD = 0x7fffffff
}
 
enum  D3D_BLOB_PART {
  D3D_BLOB_INPUT_SIGNATURE_BLOB , D3D_BLOB_OUTPUT_SIGNATURE_BLOB , D3D_BLOB_INPUT_AND_OUTPUT_SIGNATURE_BLOB , D3D_BLOB_PATCH_CONSTANT_SIGNATURE_BLOB ,
  D3D_BLOB_ALL_SIGNATURE_BLOB , D3D_BLOB_DEBUG_INFO , D3D_BLOB_LEGACY_SHADER , D3D_BLOB_XNA_PREPASS_SHADER ,
  D3D_BLOB_XNA_SHADER , D3D_BLOB_PDB , D3D_BLOB_PRIVATE_DATA , D3D_BLOB_ROOT_SIGNATURE ,
  D3D_BLOB_DEBUG_NAME , D3D_BLOB_TEST_ALTERNATE_SHADER = 0x8000 , D3D_BLOB_TEST_COMPILE_DETAILS , D3D_BLOB_TEST_COMPILE_PERF ,
  D3D_BLOB_TEST_COMPILE_REPORT
}
 

Functions

HRESULT WINAPI D3DCompile (const void *data, SIZE_T data_size, const char *filename, const D3D_SHADER_MACRO *defines, ID3DInclude *include, const char *entrypoint, const char *target, UINT sflags, UINT eflags, ID3DBlob **shader, ID3DBlob **error_messages)
 
HRESULT WINAPI D3DCompile2 (const void *data, SIZE_T data_size, const char *filename, const D3D_SHADER_MACRO *defines, ID3DInclude *include, const char *entrypoint, const char *target, UINT sflags, UINT eflags, UINT secondary_flags, const void *secondary_data, SIZE_T secondary_data_size, ID3DBlob **shader, ID3DBlob **error_messages)
 
HRESULT WINAPI D3DStripShader (const void *data, SIZE_T data_size, UINT flags, ID3DBlob **blob)
 
HRESULT WINAPI D3DDisassemble (const void *data, SIZE_T data_size, UINT flags, const char *comments, ID3DBlob **disassembly)
 
HRESULT WINAPI D3DCompileFromFile (const WCHAR *filename, const D3D_SHADER_MACRO *defines, ID3DInclude *includes, const char *entrypoint, const char *target, UINT flags1, UINT flags2, ID3DBlob **code, ID3DBlob **errors)
 
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 D3DGetInputAndOutputSignatureBlob (const void *data, SIZE_T data_size, ID3DBlob **blob)
 
HRESULT WINAPI D3DGetDebugInfo (const void *data, SIZE_T data_size, ID3DBlob **blob)
 
HRESULT WINAPI D3DReadFileToBlob (const WCHAR *filename, ID3DBlob **contents)
 
HRESULT WINAPI D3DWriteBlobToFile (ID3DBlob *blob, const WCHAR *filename, BOOL overwrite)
 
HRESULT WINAPI D3DReflect (const void *data, SIZE_T data_size, REFIID riid, void **reflector)
 
HRESULT WINAPI D3DCreateBlob (SIZE_T data_size, ID3DBlob **blob)
 
HRESULT WINAPI D3DPreprocess (const void *data, SIZE_T size, const char *filename, const D3D_SHADER_MACRO *defines, ID3DInclude *include, ID3DBlob **shader, ID3DBlob **error_messages)
 
HRESULT WINAPI D3DCreateLinker (ID3D11Linker **linker)
 
HRESULT WINAPI D3DLoadModule (const void *data, SIZE_T size, ID3D11Module **module)
 

Variables

static const WCHAR D3DCOMPILER_DLL_W [] = {'d','3','d','c','o','m','p','i','l','e','r','_','4','7','.','d','l','l',0}
 

Macro Definition Documentation

◆ D3D_COMPILE_STANDARD_FILE_INCLUDE

#define D3D_COMPILE_STANDARD_FILE_INCLUDE   ((ID3DInclude *)(UINT_PTR)1)

Definition at line 85 of file d3dcompiler.h.

◆ D3D_DISASM_DISABLE_DEBUG_INFO

#define D3D_DISASM_DISABLE_DEBUG_INFO   0x00000010

Definition at line 80 of file d3dcompiler.h.

◆ D3D_DISASM_ENABLE_COLOR_CODE

#define D3D_DISASM_ENABLE_COLOR_CODE   0x00000001

Definition at line 76 of file d3dcompiler.h.

◆ D3D_DISASM_ENABLE_DEFAULT_VALUE_PRINTS

#define D3D_DISASM_ENABLE_DEFAULT_VALUE_PRINTS   0x00000002

Definition at line 77 of file d3dcompiler.h.

◆ D3D_DISASM_ENABLE_INSTRUCTION_CYCLE

#define D3D_DISASM_ENABLE_INSTRUCTION_CYCLE   0x00000008

Definition at line 79 of file d3dcompiler.h.

◆ D3D_DISASM_ENABLE_INSTRUCTION_NUMBERING

#define D3D_DISASM_ENABLE_INSTRUCTION_NUMBERING   0x00000004

Definition at line 78 of file d3dcompiler.h.

◆ D3D_DISASM_ENABLE_INSTRUCTION_OFFSET

#define D3D_DISASM_ENABLE_INSTRUCTION_OFFSET   0x00000020

Definition at line 81 of file d3dcompiler.h.

◆ D3D_DISASM_INSTRUCTION_ONLY

#define D3D_DISASM_INSTRUCTION_ONLY   0x00000040

Definition at line 82 of file d3dcompiler.h.

◆ D3D_DISASM_PRINT_HEX_LITERALS

#define D3D_DISASM_PRINT_HEX_LITERALS   0x00000080

Definition at line 83 of file d3dcompiler.h.

◆ D3DCOMPILE_ALL_RESOURCES_BOUND

#define D3DCOMPILE_ALL_RESOURCES_BOUND   0x00200000

Definition at line 65 of file d3dcompiler.h.

◆ D3DCOMPILE_AVOID_FLOW_CONTROL

#define D3DCOMPILE_AVOID_FLOW_CONTROL   0x00000200

Definition at line 51 of file d3dcompiler.h.

◆ D3DCOMPILE_DEBUG

#define D3DCOMPILE_DEBUG   0x00000001

Definition at line 42 of file d3dcompiler.h.

◆ D3DCOMPILE_DEBUG_NAME_FOR_BINARY

#define D3DCOMPILE_DEBUG_NAME_FOR_BINARY   0x00800000

Definition at line 67 of file d3dcompiler.h.

◆ D3DCOMPILE_DEBUG_NAME_FOR_SOURCE

#define D3DCOMPILE_DEBUG_NAME_FOR_SOURCE   0x00400000

Definition at line 66 of file d3dcompiler.h.

◆ D3DCOMPILE_EFFECT_ALLOW_SLOW_OPS

#define D3DCOMPILE_EFFECT_ALLOW_SLOW_OPS   0x00000002

Definition at line 70 of file d3dcompiler.h.

◆ D3DCOMPILE_EFFECT_CHILD_EFFECT

#define D3DCOMPILE_EFFECT_CHILD_EFFECT   0x00000001

Definition at line 69 of file d3dcompiler.h.

◆ D3DCOMPILE_ENABLE_BACKWARDS_COMPATIBILITY

#define D3DCOMPILE_ENABLE_BACKWARDS_COMPATIBILITY   0x00001000

Definition at line 54 of file d3dcompiler.h.

◆ D3DCOMPILE_ENABLE_STRICTNESS

#define D3DCOMPILE_ENABLE_STRICTNESS   0x00000800

Definition at line 53 of file d3dcompiler.h.

◆ D3DCOMPILE_ENABLE_UNBOUNDED_DESCRIPTOR_TABLES

#define D3DCOMPILE_ENABLE_UNBOUNDED_DESCRIPTOR_TABLES   0x00100000

Definition at line 64 of file d3dcompiler.h.

◆ D3DCOMPILE_FLAGS2_FORCE_ROOT_SIGNATURE_1_0

#define D3DCOMPILE_FLAGS2_FORCE_ROOT_SIGNATURE_1_0   0x00000010

Definition at line 73 of file d3dcompiler.h.

◆ D3DCOMPILE_FLAGS2_FORCE_ROOT_SIGNATURE_1_1

#define D3DCOMPILE_FLAGS2_FORCE_ROOT_SIGNATURE_1_1   0x00000020

Definition at line 74 of file d3dcompiler.h.

◆ D3DCOMPILE_FLAGS2_FORCE_ROOT_SIGNATURE_LATEST

#define D3DCOMPILE_FLAGS2_FORCE_ROOT_SIGNATURE_LATEST   0x00000000

Definition at line 72 of file d3dcompiler.h.

◆ D3DCOMPILE_FORCE_PS_SOFTWARE_NO_OPT

#define D3DCOMPILE_FORCE_PS_SOFTWARE_NO_OPT   0x00000080

Definition at line 49 of file d3dcompiler.h.

◆ D3DCOMPILE_FORCE_VS_SOFTWARE_NO_OPT

#define D3DCOMPILE_FORCE_VS_SOFTWARE_NO_OPT   0x00000040

Definition at line 48 of file d3dcompiler.h.

◆ D3DCOMPILE_IEEE_STRICTNESS

#define D3DCOMPILE_IEEE_STRICTNESS   0x00002000

Definition at line 55 of file d3dcompiler.h.

◆ D3DCOMPILE_NO_PRESHADER

#define D3DCOMPILE_NO_PRESHADER   0x00000100

Definition at line 50 of file d3dcompiler.h.

◆ D3DCOMPILE_OPTIMIZATION_LEVEL0

#define D3DCOMPILE_OPTIMIZATION_LEVEL0   0x00004000

Definition at line 56 of file d3dcompiler.h.

◆ D3DCOMPILE_OPTIMIZATION_LEVEL1

#define D3DCOMPILE_OPTIMIZATION_LEVEL1   0x00000000

Definition at line 57 of file d3dcompiler.h.

◆ D3DCOMPILE_OPTIMIZATION_LEVEL2

#define D3DCOMPILE_OPTIMIZATION_LEVEL2   0x0000c000

Definition at line 58 of file d3dcompiler.h.

◆ D3DCOMPILE_OPTIMIZATION_LEVEL3

#define D3DCOMPILE_OPTIMIZATION_LEVEL3   0x00008000

Definition at line 59 of file d3dcompiler.h.

◆ D3DCOMPILE_PACK_MATRIX_COLUMN_MAJOR

#define D3DCOMPILE_PACK_MATRIX_COLUMN_MAJOR   0x00000010

Definition at line 46 of file d3dcompiler.h.

◆ D3DCOMPILE_PACK_MATRIX_ROW_MAJOR

#define D3DCOMPILE_PACK_MATRIX_ROW_MAJOR   0x00000008

Definition at line 45 of file d3dcompiler.h.

◆ D3DCOMPILE_PARTIAL_PRECISION

#define D3DCOMPILE_PARTIAL_PRECISION   0x00000020

Definition at line 47 of file d3dcompiler.h.

◆ D3DCOMPILE_PREFER_FLOW_CONTROL

#define D3DCOMPILE_PREFER_FLOW_CONTROL   0x00000400

Definition at line 52 of file d3dcompiler.h.

◆ D3DCOMPILE_RESERVED16

#define D3DCOMPILE_RESERVED16   0x00010000

Definition at line 60 of file d3dcompiler.h.

◆ D3DCOMPILE_RESERVED17

#define D3DCOMPILE_RESERVED17   0x00020000

Definition at line 61 of file d3dcompiler.h.

◆ D3DCOMPILE_RESOURCES_MAY_ALIAS

#define D3DCOMPILE_RESOURCES_MAY_ALIAS   0x00080000

Definition at line 63 of file d3dcompiler.h.

◆ D3DCOMPILE_SKIP_OPTIMIZATION

#define D3DCOMPILE_SKIP_OPTIMIZATION   0x00000004

Definition at line 44 of file d3dcompiler.h.

◆ D3DCOMPILE_SKIP_VALIDATION

#define D3DCOMPILE_SKIP_VALIDATION   0x00000002

Definition at line 43 of file d3dcompiler.h.

◆ D3DCOMPILE_WARNINGS_ARE_ERRORS

#define D3DCOMPILE_WARNINGS_ARE_ERRORS   0x00040000

Definition at line 62 of file d3dcompiler.h.

◆ D3DCOMPILER_DLL

#define D3DCOMPILER_DLL   WINELIB_NAME_AW(D3DCOMPILER_DLL_)

Definition at line 36 of file d3dcompiler.h.

◆ D3DCOMPILER_DLL_A

#define D3DCOMPILER_DLL_A   "d3dcompiler_47.dll"

Definition at line 35 of file d3dcompiler.h.

Typedef Documentation

◆ D3D_BLOB_PART

◆ D3DCOMPILER_STRIP_FLAGS

◆ pD3DCompile

◆ pD3DDisassemble

typedef HRESULT(WINAPI * pD3DDisassemble) (const void *data, SIZE_T data_size, UINT flags, const char *comments, ID3DBlob **disassembly)

Definition at line 134 of file d3dcompiler.h.

◆ pD3DPreprocess

Enumeration Type Documentation

◆ D3D_BLOB_PART

Enumerator
D3D_BLOB_INPUT_SIGNATURE_BLOB 
D3D_BLOB_OUTPUT_SIGNATURE_BLOB 
D3D_BLOB_INPUT_AND_OUTPUT_SIGNATURE_BLOB 
D3D_BLOB_PATCH_CONSTANT_SIGNATURE_BLOB 
D3D_BLOB_ALL_SIGNATURE_BLOB 
D3D_BLOB_DEBUG_INFO 
D3D_BLOB_LEGACY_SHADER 
D3D_BLOB_XNA_PREPASS_SHADER 
D3D_BLOB_XNA_SHADER 
D3D_BLOB_PDB 
D3D_BLOB_PRIVATE_DATA 
D3D_BLOB_ROOT_SIGNATURE 
D3D_BLOB_DEBUG_NAME 
D3D_BLOB_TEST_ALTERNATE_SHADER 
D3D_BLOB_TEST_COMPILE_DETAILS 
D3D_BLOB_TEST_COMPILE_PERF 
D3D_BLOB_TEST_COMPILE_REPORT 

Definition at line 111 of file d3dcompiler.h.

112{
D3D_BLOB_PART
Definition: d3dcompiler.h:112
@ D3D_BLOB_ALL_SIGNATURE_BLOB
Definition: d3dcompiler.h:117
@ D3D_BLOB_INPUT_AND_OUTPUT_SIGNATURE_BLOB
Definition: d3dcompiler.h:115
@ D3D_BLOB_DEBUG_NAME
Definition: d3dcompiler.h:125
@ D3D_BLOB_TEST_COMPILE_PERF
Definition: d3dcompiler.h:128
@ D3D_BLOB_ROOT_SIGNATURE
Definition: d3dcompiler.h:124
@ D3D_BLOB_TEST_ALTERNATE_SHADER
Definition: d3dcompiler.h:126
@ D3D_BLOB_PATCH_CONSTANT_SIGNATURE_BLOB
Definition: d3dcompiler.h:116
@ D3D_BLOB_XNA_SHADER
Definition: d3dcompiler.h:121
@ D3D_BLOB_PRIVATE_DATA
Definition: d3dcompiler.h:123
@ D3D_BLOB_TEST_COMPILE_DETAILS
Definition: d3dcompiler.h:127
@ D3D_BLOB_INPUT_SIGNATURE_BLOB
Definition: d3dcompiler.h:113
@ D3D_BLOB_OUTPUT_SIGNATURE_BLOB
Definition: d3dcompiler.h:114
@ D3D_BLOB_DEBUG_INFO
Definition: d3dcompiler.h:118
@ D3D_BLOB_TEST_COMPILE_REPORT
Definition: d3dcompiler.h:129
@ D3D_BLOB_PDB
Definition: d3dcompiler.h:122
@ D3D_BLOB_XNA_PREPASS_SHADER
Definition: d3dcompiler.h:120
@ D3D_BLOB_LEGACY_SHADER
Definition: d3dcompiler.h:119

◆ D3DCOMPILER_STRIP_FLAGS

Enumerator
D3DCOMPILER_STRIP_REFLECTION_DATA 
D3DCOMPILER_STRIP_DEBUG_INFO 
D3DCOMPILER_STRIP_TEST_BLOBS 
D3DCOMPILER_STRIP_PRIVATE_DATA 
D3DCOMPILER_STRIP_ROOT_SIGNATURE 
D3DCOMPILER_STRIP_FORCE_DWORD 

Definition at line 99 of file d3dcompiler.h.

100{
D3DCOMPILER_STRIP_FLAGS
Definition: d3dcompiler.h:100
@ D3DCOMPILER_STRIP_TEST_BLOBS
Definition: d3dcompiler.h:103
@ D3DCOMPILER_STRIP_DEBUG_INFO
Definition: d3dcompiler.h:102
@ D3DCOMPILER_STRIP_ROOT_SIGNATURE
Definition: d3dcompiler.h:105
@ D3DCOMPILER_STRIP_FORCE_DWORD
Definition: d3dcompiler.h:106
@ D3DCOMPILER_STRIP_PRIVATE_DATA
Definition: d3dcompiler.h:104
@ D3DCOMPILER_STRIP_REFLECTION_DATA
Definition: d3dcompiler.h:101

Function Documentation

◆ D3DCompile()

HRESULT WINAPI D3DCompile ( const void *  data,
SIZE_T  data_size,
const char *  filename,
const D3D_SHADER_MACRO *  defines,
ID3DInclude *  include,
const char *  entrypoint,
const char *  target,
UINT  sflags,
UINT  eflags,
ID3DBlob **  shader,
ID3DBlob **  error_messages 
)

Definition at line 639 of file compiler.c.

642{
643 TRACE("data %p, data_size %Iu, filename %s, defines %p, include %p, entrypoint %s, "
644 "target %s, sflags %#x, eflags %#x, shader %p, error_messages %p.\n",
645 data, data_size, debugstr_a(filename), defines, include, debugstr_a(entrypoint),
647
648 return D3DCompile2(data, data_size, filename, defines, include, entrypoint, target, sflags,
650}
static SIZE_T const char const D3D_SHADER_MACRO ID3DInclude * include
Definition: asm.c:31
static SIZE_T const char const D3D_SHADER_MACRO ID3DInclude UINT ID3DBlob ID3DBlob ** error_messages
Definition: asm.c:32
static SIZE_T const char const D3D_SHADER_MACRO * defines
Definition: asm.c:31
HRESULT WINAPI D3DCompile2(const void *data, SIZE_T data_size, const char *filename, const D3D_SHADER_MACRO *macros, ID3DInclude *include, const char *entry_point, const char *profile, UINT flags, UINT effect_flags, UINT secondary_flags, const void *secondary_data, SIZE_T secondary_data_size, ID3DBlob **shader_blob, ID3DBlob **messages_blob)
Definition: compiler.c:451
#define NULL
Definition: types.h:112
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
Definition: gl.h:1950
GLuint shader
Definition: glext.h:6030
const char * filename
Definition: ioapi.h:137
#define debugstr_a
Definition: kernel32.h:31
#define TRACE(s)
Definition: solgame.cpp:4
Definition: tools.h:99

Referenced by call_D3DCompile(), compile_shader_(), create_effect(), d2d_device_context_init(), D3DCompileFromFile(), D3DX10CompileFromMemory(), D3DX11CompileFromMemory(), d3dx9_effect_init(), D3DXCompileShader(), D3DXCompileShaderFromFileW(), test_fail(), test_hlsl_double(), test_include(), and test_no_output_blob().

◆ D3DCompile2()

HRESULT WINAPI D3DCompile2 ( const void *  data,
SIZE_T  data_size,
const char *  filename,
const D3D_SHADER_MACRO *  defines,
ID3DInclude *  include,
const char *  entrypoint,
const char *  target,
UINT  sflags,
UINT  eflags,
UINT  secondary_flags,
const void *  secondary_data,
SIZE_T  secondary_data_size,
ID3DBlob **  shader,
ID3DBlob **  error_messages 
)

Definition at line 451 of file compiler.c.

456{
457 struct d3dcompiler_include_from_file include_from_file;
458 struct vkd3d_shader_preprocess_info preprocess_info;
459 struct vkd3d_shader_hlsl_source_info hlsl_info;
461 struct vkd3d_shader_compile_info compile_info;
463 struct vkd3d_shader_code byte_code;
464 const D3D_SHADER_MACRO *macro;
465 char *messages;
466 HRESULT hr;
467 int ret;
468
469 TRACE("data %p, data_size %Iu, filename %s, macros %p, include %p, entry_point %s, "
470 "profile %s, flags %#x, effect_flags %#x, secondary_flags %#x, secondary_data %p, "
471 "secondary_data_size %Iu, shader_blob %p, messages_blob %p.\n",
472 data, data_size, debugstr_a(filename), macros, include, debugstr_a(entry_point),
473 debugstr_a(profile), flags, effect_flags, secondary_flags, secondary_data,
474 secondary_data_size, shader_blob, messages_blob);
475
477 {
478 include_from_file.ID3DInclude_iface.lpVtbl = &d3dcompiler_include_from_file_vtbl;
479 include_from_file.initial_filename = filename ? filename : "";
480 include = &include_from_file.ID3DInclude_iface;
481 }
482
485 {
486 FIXME("Ignoring flags %#x.\n", flags);
487 }
488 if (effect_flags & ~D3DCOMPILE_EFFECT_CHILD_EFFECT)
489 FIXME("Ignoring effect flags %#x.\n", effect_flags & ~D3DCOMPILE_EFFECT_CHILD_EFFECT);
490 if (secondary_flags)
491 FIXME("Ignoring secondary flags %#x.\n", secondary_flags);
492
493 if (shader_blob)
494 *shader_blob = NULL;
495 if (messages_blob)
496 *messages_blob = NULL;
497
498 option = &options[0];
501
503 compile_info.next = &preprocess_info;
504 compile_info.source.code = data;
505 compile_info.source.size = data_size;
506 compile_info.source_type = VKD3D_SHADER_SOURCE_HLSL;
507 compile_info.target_type = get_target_for_profile(profile);
508 compile_info.options = options;
509 compile_info.option_count = 1;
510 compile_info.log_level = VKD3D_SHADER_LOG_INFO;
511 compile_info.source_name = filename;
512
513 preprocess_info.type = VKD3D_SHADER_STRUCTURE_TYPE_PREPROCESS_INFO;
514 preprocess_info.next = &hlsl_info;
515 preprocess_info.macros = (const struct vkd3d_shader_macro *)macros;
516 preprocess_info.macro_count = 0;
517 if (macros)
518 {
519 for (macro = macros; macro->Name; ++macro)
520 ++preprocess_info.macro_count;
521 }
522 preprocess_info.pfn_open_include = open_include;
523 preprocess_info.pfn_close_include = close_include;
524 preprocess_info.include_context = include;
525
527 hlsl_info.next = NULL;
528 hlsl_info.profile = profile;
529 hlsl_info.entry_point = entry_point;
530 hlsl_info.secondary_code.code = secondary_data;
531 hlsl_info.secondary_code.size = secondary_data_size;
532
533 if (!(flags & D3DCOMPILE_DEBUG))
534 {
535 option = &options[compile_info.option_count++];
537 option->value = true;
538 }
539
541 {
542 option = &options[compile_info.option_count++];
545 }
547 {
548 option = &options[compile_info.option_count++];
551 }
552
554 {
555 option = &options[compile_info.option_count++];
558 }
559
560 if (effect_flags & D3DCOMPILE_EFFECT_CHILD_EFFECT)
561 {
562 option = &options[compile_info.option_count++];
564 option->value = true;
565 }
566
567#if D3D_COMPILER_VERSION <= 39
568 option = &options[compile_info.option_count++];
570 option->value = true;
571#endif
572
573 ret = vkd3d_shader_compile(&compile_info, &byte_code, &messages);
574
575 if (ret)
576 ERR("Failed to compile shader, vkd3d result %d.\n", ret);
577
578 if (messages)
579 {
580 if (*messages && ERR_ON(d3dcompiler))
581 {
582 const char *ptr = messages;
583 const char *line;
584
585 ERR("Shader log:\n");
586 while ((line = get_line(&ptr)))
587 {
588 ERR(" %.*s", (int)(ptr - line), line);
589 }
590 ERR("\n");
591 }
592
593 if (messages_blob)
594 {
595 size_t size = strlen(messages);
596 if (FAILED(hr = D3DCreateBlob(size, messages_blob)))
597 {
600 return hr;
601 }
602 memcpy(ID3D10Blob_GetBufferPointer(*messages_blob), messages, size);
603 }
604
606 }
607
608 if (ret)
610
611 if (!shader_blob)
612 {
614 return S_OK;
615 }
616
617 /* Unlike other effect profiles fx_4_x is using DXBC container. */
618 if (!strcmp(profile, "fx_4_0") || !strcmp(profile, "fx_4_1"))
619 {
620 struct vkd3d_shader_dxbc_section_desc section = { .tag = TAG_FX10, .data = byte_code };
621 struct vkd3d_shader_code dxbc;
622
625 if (ret)
627
628 byte_code = dxbc;
629 }
630
631 if (SUCCEEDED(hr = D3DCreateBlob(byte_code.size, shader_blob)))
632 memcpy(ID3D10Blob_GetBufferPointer(*shader_blob), byte_code.code, byte_code.size);
633
635
636 return hr;
637}
static WCHAR *(* get_line)(FILE *)
Definition: import.c:55
#define FIXME(fmt,...)
Definition: precomp.h:53
#define ERR(fmt,...)
Definition: precomp.h:57
#define D3DCOMPILE_DEBUG
Definition: d3dcompiler.h:42
#define D3DCOMPILE_ENABLE_BACKWARDS_COMPATIBILITY
Definition: d3dcompiler.h:54
#define D3DCOMPILE_PACK_MATRIX_ROW_MAJOR
Definition: d3dcompiler.h:45
#define D3DCOMPILE_PACK_MATRIX_COLUMN_MAJOR
Definition: d3dcompiler.h:46
#define D3DCOMPILE_EFFECT_CHILD_EFFECT
Definition: d3dcompiler.h:69
#define D3D_COMPILE_STANDARD_FILE_INCLUDE
Definition: d3dcompiler.h:85
static int open_include(const char *filename, bool local, const char *parent_data, void *context, struct vkd3d_shader_code *code)
Definition: compiler.c:149
static void close_include(const struct vkd3d_shader_code *code, void *context)
Definition: compiler.c:167
static HRESULT hresult_from_vkd3d_result(int vkd3d_result)
Definition: compiler.c:30
static enum vkd3d_shader_target_type get_target_for_profile(const char *profile)
Definition: compiler.c:400
const struct ID3DIncludeVtbl d3dcompiler_include_from_file_vtbl
Definition: compiler.c:143
HRESULT hr
Definition: delayimp.cpp:582
#define TAG_FX10
Definition: effect.c:32
HRESULT WINAPI D3DCreateBlob(SIZE_T data_size, ID3DBlob **blob)
Definition: blob.c:133
_ACRTIMP size_t __cdecl strlen(const char *)
Definition: string.c:1597
_ACRTIMP int __cdecl strcmp(const char *, const char *)
Definition: string.c:3324
return ret
Definition: mutex.c:147
struct macel macros[16]
Definition: main.c:109
GLsizeiptr size
Definition: glext.h:5919
GLbitfield flags
Definition: glext.h:7161
#define S_OK
Definition: intsafe.h:52
#define SUCCEEDED(hr)
Definition: intsafe.h:50
#define FAILED(hr)
Definition: intsafe.h:51
#define profile
Definition: kernel32.h:12
#define memcpy(s1, s2, n)
Definition: mkisofs.h:878
static PVOID ptr
Definition: dispmode.c:27
#define ERR_ON(ch)
Definition: debug.h:423
Definition: parser.c:49
Definition: getopt.h:109
WCHAR * name
Definition: getopt.h:110
Definition: parser.c:56
@ VKD3D_SHADER_COMPILE_OPTION_BACKWARD_COMPATIBILITY
Definition: vkd3d_shader.h:310
@ VKD3D_SHADER_COMPILE_OPTION_PACK_MATRIX_ORDER
Definition: vkd3d_shader.h:302
@ VKD3D_SHADER_COMPILE_OPTION_CHILD_EFFECT
Definition: vkd3d_shader.h:341
@ VKD3D_SHADER_COMPILE_OPTION_API_VERSION
Definition: vkd3d_shader.h:279
@ VKD3D_SHADER_COMPILE_OPTION_STRIP_DEBUG
Definition: vkd3d_shader.h:273
@ VKD3D_SHADER_COMPILE_OPTION_INCLUDE_EMPTY_BUFFERS_IN_EFFECTS
Definition: vkd3d_shader.h:360
VKD3D_SHADER_API void vkd3d_shader_free_shader_code(struct vkd3d_shader_code *code)
@ VKD3D_SHADER_COMPILE_OPTION_BACKCOMPAT_MAP_SEMANTIC_NAMES
Definition: vkd3d_shader.h:193
@ VKD3D_SHADER_SOURCE_HLSL
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)
Definition: dxbc.c:53
@ VKD3D_SHADER_LOG_INFO
@ VKD3D_SHADER_STRUCTURE_TYPE_COMPILE_INFO
Definition: vkd3d_shader.h:68
@ VKD3D_SHADER_STRUCTURE_TYPE_PREPROCESS_INFO
Definition: vkd3d_shader.h:89
@ VKD3D_SHADER_STRUCTURE_TYPE_HLSL_SOURCE_INFO
Definition: vkd3d_shader.h:84
@ VKD3D_SHADER_API_VERSION_1_3
Definition: vkd3d_shader.h:48
VKD3D_SHADER_API int vkd3d_shader_compile(const struct vkd3d_shader_compile_info *compile_info, struct vkd3d_shader_code *out, char **messages)
@ VKD3D_SHADER_COMPILE_OPTION_PACK_MATRIX_COLUMN_MAJOR
Definition: vkd3d_shader.h:174
@ VKD3D_SHADER_COMPILE_OPTION_PACK_MATRIX_ROW_MAJOR
Definition: vkd3d_shader.h:173
VKD3D_SHADER_API void vkd3d_shader_free_messages(char *messages)

Referenced by D3DCompile().

◆ D3DCompileFromFile()

HRESULT WINAPI D3DCompileFromFile ( const WCHAR *  filename,
const D3D_SHADER_MACRO *  defines,
ID3DInclude *  includes,
const char *  entrypoint,
const char *  target,
UINT  flags1,
UINT  flags2,
ID3DBlob **  code,
ID3DBlob **  errors 
)

Definition at line 743 of file compiler.c.

745{
746 char filename_a[MAX_PATH], *source = NULL;
747 DWORD source_size, read_size;
748 HANDLE file;
749 HRESULT hr;
750
751 TRACE("filename %s, defines %p, include %p, entrypoint %s, target %s, flags1 %#x, flags2 %#x, "
752 "code %p, errors %p.\n", debugstr_w(filename), defines, include, debugstr_a(entrypoint),
753 debugstr_a(target), flags1, flags2, code, errors);
754
758
759 source_size = GetFileSize(file, NULL);
760 if (source_size == INVALID_FILE_SIZE)
761 {
763 goto end;
764 }
765
766 if (!(source = malloc(source_size)))
767 {
769 goto end;
770 }
771
772 if (!ReadFile(file, source, source_size, &read_size, NULL) || read_size != source_size)
773 {
774 WARN("Failed to read file contents.\n");
775 hr = E_FAIL;
776 goto end;
777 }
778
779 WideCharToMultiByte(CP_ACP, 0, filename, -1, filename_a, sizeof(filename_a), NULL, NULL);
780
781 hr = D3DCompile(source, source_size, filename_a, defines, include, entrypoint, target,
782 flags1, flags2, code, errors);
783
784end:
785 free(source);
787 return hr;
788}
#define WARN(fmt,...)
Definition: precomp.h:61
HRESULT WINAPI D3DCompile(const void *data, SIZE_T data_size, const char *filename, const D3D_SHADER_MACRO *defines, ID3DInclude *include, const char *entrypoint, const char *target, UINT sflags, UINT eflags, ID3DBlob **shader, ID3DBlob **error_messages)
Definition: compiler.c:639
#define E_OUTOFMEMORY
Definition: ddrawi.h:100
#define E_FAIL
Definition: ddrawi.h:102
#define free
Definition: debug_ros.c:5
#define malloc
Definition: debug_ros.c:4
#define CloseHandle
Definition: compat.h:739
#define CP_ACP
Definition: compat.h:109
#define OPEN_EXISTING
Definition: compat.h:775
#define ReadFile(a, b, c, d, e)
Definition: compat.h:742
#define INVALID_HANDLE_VALUE
Definition: compat.h:731
#define GENERIC_READ
Definition: compat.h:135
#define MAX_PATH
Definition: compat.h:34
#define CreateFileW
Definition: compat.h:741
#define FILE_ATTRIBUTE_NORMAL
Definition: compat.h:137
#define WideCharToMultiByte
Definition: compat.h:111
#define FILE_SHARE_READ
Definition: compat.h:136
DWORD WINAPI GetFileSize(HANDLE hFile, LPDWORD lpFileSizeHigh)
Definition: fileinfo.c:331
unsigned long DWORD
Definition: ntddk_ex.h:95
GLuint GLuint end
Definition: gl.h:1545
#define debugstr_w
Definition: kernel32.h:32
Definition: inflate.c:139
Definition: fci.c:123
DWORD WINAPI GetLastError(void)
Definition: except.c:1042
#define INVALID_FILE_SIZE
Definition: winbase.h:528
static HRESULT HRESULT_FROM_WIN32(unsigned int x)
Definition: winerror.h:210

Referenced by D3DX11CompileFromFileW(), and test_include().

◆ D3DCreateBlob()

HRESULT WINAPI D3DCreateBlob ( SIZE_T  data_size,
ID3DBlob **  blob 
)

Definition at line 133 of file blob.c.

134{
135 struct d3dcompiler_blob *object;
136 HRESULT hr;
137
138 TRACE("data_size %Iu, blob %p.\n", data_size, blob);
139
140 if (!blob)
141 {
142 WARN("Invalid blob specified.\n");
143 return D3DERR_INVALIDCALL;
144 }
145
146 object = calloc(1, sizeof(*object));
147 if (!object)
148 return E_OUTOFMEMORY;
149
150 hr = d3dcompiler_blob_init(object, data_size);
151 if (FAILED(hr))
152 {
153 WARN("Failed to initialize blob, hr %#lx.\n", hr);
154 free(object);
155 return hr;
156 }
157
158 *blob = &object->ID3DBlob_iface;
159
160 TRACE("Created ID3DBlob %p\n", *blob);
161
162 return S_OK;
163}
#define D3DERR_INVALIDCALL
Definition: d3d10_private.h:42
static HRESULT d3dcompiler_blob_init(struct d3dcompiler_blob *blob, SIZE_T data_size)
Definition: blob.c:117
#define calloc
Definition: rosglue.h:14
Definition: image.c:229

Referenced by assemble_shader(), D3DCompile2(), d3dcompiler_get_blob_part(), d3dcompiler_strip_shader(), D3DDisassemble(), parse_fx10_fxlc(), parse_fx10_shader(), and preprocess_shader().

◆ D3DCreateLinker()

HRESULT WINAPI D3DCreateLinker ( ID3D11Linker **  linker)

Definition at line 790 of file compiler.c.

791{
792 FIXME("linker %p stub!\n", linker);
793 return E_NOTIMPL;
794}
#define E_NOTIMPL
Definition: ddrawi.h:99

◆ D3DDisassemble()

HRESULT WINAPI D3DDisassemble ( const void *  data,
SIZE_T  data_size,
UINT  flags,
const char *  comments,
ID3DBlob **  disassembly 
)

Definition at line 668 of file compiler.c.

670{
671 struct vkd3d_shader_compile_info compile_info;
673 struct vkd3d_shader_code asm_code;
674 const char *ptr = data;
675 char *messages;
676 HRESULT hr;
677 int ret;
678
679 TRACE("data %p, size %Iu, flags %#x, comments %p, disassembly %p.\n",
680 data, size, flags, comments, disassembly);
681
682 if (flags)
683 FIXME("Ignoring flags %#x.\n", flags);
684
685 if (comments)
686 FIXME("Ignoring comments %s.\n", debugstr_a(comments));
687
688#if D3D_COMPILER_VERSION >= 46
689 if (!size)
690 return E_INVALIDARG;
691#endif
692
693 if (size >= 4 && read_u32(&ptr) == TAG_DXBC)
694 source_type = VKD3D_SHADER_SOURCE_DXBC_TPF;
695 else
697
699 compile_info.next = NULL;
700 compile_info.source.code = data;
701 compile_info.source.size = size;
702 compile_info.source_type = source_type;
703 compile_info.target_type = VKD3D_SHADER_TARGET_D3D_ASM;
704 compile_info.options = NULL;
705 compile_info.option_count = 0;
706 compile_info.log_level = VKD3D_SHADER_LOG_INFO;
707 compile_info.source_name = NULL;
708
709 ret = vkd3d_shader_compile(&compile_info, &asm_code, &messages);
710
711 if (ret)
712 ERR("Failed to disassemble shader, vkd3d result %d.\n", ret);
713
714 if (messages)
715 {
716 if (*messages && ERR_ON(d3dcompiler))
717 {
718 const char *ptr = messages;
719 const char *line;
720
721 ERR("Shader log:\n");
722 while ((line = get_line(&ptr)))
723 {
724 ERR(" %.*s", (int)(ptr - line), line);
725 }
726 ERR("\n");
727 }
728
730 }
731
732 if (ret)
734
735 if (SUCCEEDED(hr = D3DCreateBlob(asm_code.size, disassembly)))
736 memcpy(ID3D10Blob_GetBufferPointer(*disassembly), asm_code.code, asm_code.size);
737
739
740 return hr;
741}
#define TAG_DXBC
#define E_INVALIDARG
Definition: ddrawi.h:101
char comments[4096]
static uint32_t read_u32(const char **ptr)
Definition: utils.h:24
enum vkd3d_shader_source_type source_type
vkd3d_shader_source_type
@ VKD3D_SHADER_SOURCE_D3D_BYTECODE
@ VKD3D_SHADER_SOURCE_DXBC_TPF
@ VKD3D_SHADER_TARGET_D3D_ASM

Referenced by D3DXDisassembleShader(), and test_disassemble_shader().

◆ D3DGetBlobPart()

HRESULT WINAPI D3DGetBlobPart ( const void *  data,
SIZE_T  data_size,
D3D_BLOB_PART  part,
UINT  flags,
ID3DBlob **  blob 
)

Definition at line 413 of file blob.c.

414{
415 TRACE("data %p, data_size %Iu, part %s, flags %#x, blob %p.\n", data,
416 data_size, debug_d3dcompiler_d3d_blob_part(part), flags, blob);
417
418 return d3dcompiler_get_blob_part(data, data_size, part, flags, blob);
419}
const char * debug_d3dcompiler_d3d_blob_part(D3D_BLOB_PART part)
Definition: utils.c:106
static HRESULT d3dcompiler_get_blob_part(const void *data, SIZE_T data_size, D3D_BLOB_PART part, UINT flags, ID3DBlob **blob)
Definition: blob.c:217

◆ D3DGetDebugInfo()

HRESULT WINAPI D3DGetDebugInfo ( const void *  data,
SIZE_T  data_size,
ID3DBlob **  blob 
)

Definition at line 442 of file blob.c.

443{
444 TRACE("data %p, data_size %Iu, blob %p.\n", data, data_size, blob);
445
447}

◆ D3DGetInputAndOutputSignatureBlob()

HRESULT WINAPI D3DGetInputAndOutputSignatureBlob ( const void *  data,
SIZE_T  data_size,
ID3DBlob **  blob 
)

Definition at line 435 of file blob.c.

436{
437 TRACE("data %p, data_size %Iu, blob %p.\n", data, data_size, blob);
438
440}

◆ D3DGetInputSignatureBlob()

HRESULT WINAPI D3DGetInputSignatureBlob ( const void *  data,
SIZE_T  data_size,
ID3DBlob **  blob 
)

Definition at line 421 of file blob.c.

422{
423 TRACE("data %p, data_size %Iu, blob %p.\n", data, data_size, blob);
424
426}

Referenced by parse_fx10_shader().

◆ D3DGetOutputSignatureBlob()

HRESULT WINAPI D3DGetOutputSignatureBlob ( const void *  data,
SIZE_T  data_size,
ID3DBlob **  blob 
)

Definition at line 428 of file blob.c.

429{
430 TRACE("data %p, data_size %Iu, blob %p.\n", data, data_size, blob);
431
433}

◆ D3DLoadModule()

HRESULT WINAPI D3DLoadModule ( const void *  data,
SIZE_T  size,
ID3D11Module **  module 
)

Definition at line 796 of file compiler.c.

797{
798 FIXME("data %p, size %Iu, module %p stub!\n", data, size, module);
799 return E_NOTIMPL;
800}

◆ D3DPreprocess()

HRESULT WINAPI D3DPreprocess ( const void *  data,
SIZE_T  size,
const char *  filename,
const D3D_SHADER_MACRO *  defines,
ID3DInclude *  include,
ID3DBlob **  shader,
ID3DBlob **  error_messages 
)

Definition at line 652 of file compiler.c.

655{
656 TRACE("data %p, size %Iu, filename %s, defines %p, include %p, shader %p, error_messages %p.\n",
658
659 if (!data)
660 return E_INVALIDARG;
661
662 if (shader) *shader = NULL;
664
666}
static HRESULT preprocess_shader(const void *data, SIZE_T data_size, const char *filename, const D3D_SHADER_MACRO *defines, ID3DInclude *include, ID3DBlob **shader_blob, ID3DBlob **messages_blob)
Definition: compiler.c:191

Referenced by call_D3DPreprocess(), d3dpreprocess_test(), D3DX10PreprocessShaderFromMemory(), D3DXPreprocessShader(), and D3DXPreprocessShaderFromFileW().

◆ D3DReadFileToBlob()

HRESULT WINAPI D3DReadFileToBlob ( const WCHAR *  filename,
ID3DBlob **  contents 
)

Definition at line 456 of file blob.c.

457{
458 struct d3dcompiler_blob *object;
459 SIZE_T data_size;
460 DWORD read_size;
461 HANDLE file;
462 HRESULT hr;
463
464 TRACE("filename %s, contents %p.\n", debugstr_w(filename), contents);
465
469
470 data_size = GetFileSize(file, NULL);
471 if (data_size == INVALID_FILE_SIZE)
472 {
475 }
476
477 if (!(object = calloc(1, sizeof(*object))))
478 {
480 return E_OUTOFMEMORY;
481 }
482
483 if (FAILED(hr = d3dcompiler_blob_init(object, data_size)))
484 {
485 WARN("Failed to initialise blob, hr %#lx.\n", hr);
487 free(object);
488 return hr;
489 }
490
491 if (!ReadFile(file, object->data, data_size, &read_size, NULL) || (read_size != data_size))
492 {
493 WARN("Failed to read file contents.\n");
495 free(object->data);
496 free(object);
497 return E_FAIL;
498 }
500 object->size = read_size;
501
502 *contents = &object->ID3DBlob_iface;
503
504 TRACE("Returning ID3DBlob %p.\n", *contents);
505
506 return S_OK;
507}
static const char * contents
Definition: parser.c:511
ULONG_PTR SIZE_T
Definition: typedefs.h:80

◆ D3DReflect()

HRESULT WINAPI D3DReflect ( const void *  data,
SIZE_T  data_size,
REFIID  riid,
void **  reflector 
)

◆ D3DStripShader()

HRESULT WINAPI D3DStripShader ( const void *  data,
SIZE_T  data_size,
UINT  flags,
ID3DBlob **  blob 
)

Definition at line 449 of file blob.c.

450{
451 TRACE("data %p, data_size %Iu, flags %#x, blob %p.\n", data, data_size, flags, blob);
452
453 return d3dcompiler_strip_shader(data, data_size, flags, blob);
454}
static HRESULT d3dcompiler_strip_shader(const void *data, SIZE_T data_size, UINT flags, ID3DBlob **blob)
Definition: blob.c:349

◆ D3DWriteBlobToFile()

HRESULT WINAPI D3DWriteBlobToFile ( ID3DBlob *  blob,
const WCHAR *  filename,
BOOL  overwrite 
)

Definition at line 509 of file blob.c.

510{
511 DWORD written_size;
512 SIZE_T data_size;
513 HANDLE file;
514 BOOL ret;
515
516 TRACE("blob %p, filename %s, overwrite %#x.\n", blob, debugstr_w(filename), overwrite);
517
522
523 data_size = ID3D10Blob_GetBufferSize(blob);
524 ret = WriteFile(file, ID3D10Blob_GetBufferPointer(blob), data_size, &written_size, NULL);
526 if (!ret || data_size != written_size)
527 {
528 WARN("Failed to write blob contents.\n");
529 return E_FAIL;
530 }
531
532 return S_OK;
533}
BOOL WINAPI WriteFile(_In_ HANDLE hFile, _In_reads_bytes_opt_(nNumberOfBytesToWrite) LPCVOID lpBuffer, _In_ DWORD nNumberOfBytesToWrite, _Out_opt_ LPDWORD lpNumberOfBytesWritten, _Inout_opt_ LPOVERLAPPED lpOverlapped)
Definition: rw.c:25
unsigned int BOOL
Definition: ntddk_ex.h:94
#define CREATE_ALWAYS
Definition: disk.h:72
#define CREATE_NEW
Definition: disk.h:69
#define GENERIC_WRITE
Definition: nt_native.h:90

Variable Documentation

◆ D3DCOMPILER_DLL_W

const WCHAR D3DCOMPILER_DLL_W[] = {'d','3','d','c','o','m','p','i','l','e','r','_','4','7','.','d','l','l',0}
static

Definition at line 32 of file d3dcompiler.h.

Referenced by load_d3dassemble_once().