Modules

dxc_compiler

moduleSource

Available on Windows·since 0.31.0

#import "dxc_compiler";

Module parameters#

NINTENDO_SUPPORT := false
Nintendo platform support; no declaration depends on it yet.

Procedures#

Declarations#

vtable27 overloadssince 0.31.0Source
DxcCreateInstanceforeign2 overloadsSource
(rclsid: *IID, riid: *IID, ppv: **void) -> HRESULT
(rclsid: IID, riid: IID, ppv: **void) -> HRESULT
DxcCreateInstance2foreign2 overloadsSource
(pMalloc: *IMalloc, rclsid: *IID, riid: *IID, ppv: **void) -> HRESULT
(pMalloc: *IMalloc, rclsid: IID, riid: IID, ppv: **void) -> HRESULT

Wrappers#

Foreign#

DxcCreateInstanceforeign2 overloadsSource
(rclsid: *IID, riid: *IID, ppv: **void) -> HRESULT
(rclsid: IID, riid: IID, ppv: **void) -> HRESULT
DxcCreateInstance2foreign2 overloadsSource
(pMalloc: *IMalloc, rclsid: *IID, riid: *IID, ppv: **void) -> HRESULT
(pMalloc: *IMalloc, rclsid: IID, riid: IID, ppv: **void) -> HRESULT

Types#

:: enum
NONE
OBJECT
ERRORS
PDB
SHADER_HASH
DISASSEMBLY
HLSL
TEXT
REFLECTION
ROOT_SIGNATURE
EXTRA_OUTPUTS
REMARKS
TIME_REPORT
TIME_TRACE
LAST
NUM_ENUMS
FORCE_DWORD
DXC_OUT_NONE
DXC_OUT_OBJECT
DXC_OUT_ERRORS
DXC_OUT_PDB
DXC_OUT_SHADER_HASH
DXC_OUT_DISASSEMBLY
DXC_OUT_HLSL
DXC_OUT_TEXT
DXC_OUT_REFLECTION
DXC_OUT_ROOT_SIGNATURE
DXC_OUT_EXTRA_OUTPUTS
DXC_OUT_REMARKS
DXC_OUT_TIME_REPORT
DXC_OUT_TIME_TRACE
DXC_OUT_LAST
DXC_OUT_NUM_ENUMS
DXC_OUT_FORCE_DWORD
:: struct
shader_name: string
shader_source: string
shader_model_version: string
shader_type: Shader_Type
entry_point: string
defines: [] string
extra_args: [] string
add_debug_info: bool
warnings_as_error: bool
skip_optimization: bool
spirv_target_env: string
spirv_generate_non_semanantic_debug_info: := true
turn_off_validation: bool
DxcBufferstructforeignSource
:: struct
Ptr: *void
Size: SIZE_T
Encoding: u32
:: struct
vtable: IUnknown_VTable
GetBufferPointer: #type (this: *IDxcBlob) -> *void #cpp_method
GetBufferSize: #type (this: *IDxcBlob) -> SIZE_T #cpp_method
:: struct
vtable: IUnknown_VTable
Compile: #type (this: *IDxcCompiler, pSource: *IDxcBlob, pSourceName: *s16, pEntryPoint: *s16, pTargetProfile: *s16, pArguments: **s16, argCount: u32, pDefines: *DxcDefine, defineCount: u32, pIncludeHandler: *IDxcIncludeHandler, ppResult: **IDxcOperationResult) -> HRESULT #cpp_method
Preprocess: #type (this: *IDxcCompiler, pSource: *IDxcBlob, pSourceName: *s16, pArguments: **s16, argCount: u32, pDefines: *DxcDefine, defineCount: u32, pIncludeHandler: *IDxcIncludeHandler, ppResult: **IDxcOperationResult) -> HRESULT #cpp_method
Disassemble: #type (this: *IDxcCompiler, pSource: *IDxcBlob, ppDisassembly: **IDxcBlobEncoding) -> HRESULT #cpp_method
:: struct
vtable: IUnknown_VTable
GetArguments: #type (this: *IDxcCompilerArgs) -> **s16 #cpp_method
GetCount: #type (this: *IDxcCompilerArgs) -> u32 #cpp_method
AddArguments: #type (this: *IDxcCompilerArgs, pArguments: **s16, argCount: u32) -> HRESULT #cpp_method
AddArgumentsUTF8: #type (this: *IDxcCompilerArgs, pArguments: **u8, argCount: u32) -> HRESULT #cpp_method
AddDefines: #type (this: *IDxcCompilerArgs, pDefines: *DxcDefine, defineCount: u32) -> HRESULT #cpp_method
:: struct
vtable: IUnknown_VTable
Load: #type (this: *IDxcContainerReflection, pContainer: *IDxcBlob) -> HRESULT #cpp_method
GetPartCount: #type (this: *IDxcContainerReflection, pResult: *u32) -> HRESULT #cpp_method
GetPartKind: #type (this: *IDxcContainerReflection, idx: u32, pResult: *u32) -> HRESULT #cpp_method
GetPartContent: #type (this: *IDxcContainerReflection, idx: u32, ppResult: **IDxcBlob) -> HRESULT #cpp_method
FindFirstPartKind: #type (this: *IDxcContainerReflection, kind: u32, pResult: *u32) -> HRESULT #cpp_method
GetPartReflection: #type (this: *IDxcContainerReflection, idx: u32, iid: *IID, ppvObject: **void) -> HRESULT #cpp_method
:: struct
vtable: IUnknown_VTable
SetMalloc: #type (this: *IDxcLibrary, pMalloc: *IMalloc) -> HRESULT #cpp_method
CreateBlobFromBlob: #type (this: *IDxcLibrary, pBlob: *IDxcBlob, offset: u32, length: u32, ppResult: **IDxcBlob) -> HRESULT #cpp_method
CreateBlobFromFile: #type (this: *IDxcLibrary, pFileName: *s16, codePage: *u32, pBlobEncoding: **IDxcBlobEncoding) -> HRESULT #cpp_method
CreateBlobWithEncodingFromPinned: #type (this: *IDxcLibrary, pText: *void, size: u32, codePage: u32, pBlobEncoding: **IDxcBlobEncoding) -> HRESULT #cpp_method
CreateBlobWithEncodingOnHeapCopy: #type (this: *IDxcLibrary, pText: *void, size: u32, codePage: u32, pBlobEncoding: **IDxcBlobEncoding) -> HRESULT #cpp_method
CreateBlobWithEncodingOnMalloc: #type (this: *IDxcLibrary, pText: *void, pIMalloc: *IMalloc, size: u32, codePage: u32, pBlobEncoding: **IDxcBlobEncoding) -> HRESULT #cpp_method
CreateIncludeHandler: #type (this: *IDxcLibrary, ppResult: **IDxcIncludeHandler) -> HRESULT #cpp_method
CreateStreamFromBlobReadOnly: #type (this: *IDxcLibrary, pBlob: *IDxcBlob, ppStream: **IStream) -> HRESULT #cpp_method
GetBlobAsUtf8: #type (this: *IDxcLibrary, pBlob: *IDxcBlob, pBlobEncoding: **IDxcBlobEncoding) -> HRESULT #cpp_method
GetBlobAsWide: #type (this: *IDxcLibrary, pBlob: *IDxcBlob, pBlobEncoding: **IDxcBlobEncoding) -> HRESULT #cpp_method
:: struct
vtable: IUnknown_VTable
RegisterLibrary: #type (this: *IDxcLinker, pLibName: *s16, pLib: *IDxcBlob) -> HRESULT #cpp_method
Link: #type (this: *IDxcLinker, pEntryName: *s16, pTargetProfile: *s16, pLibNames: **s16, libCount: u32, pArguments: **s16, argCount: u32, ppResult: **IDxcOperationResult) -> HRESULT #cpp_method
:: struct
vtable: IUnknown_VTable
GetOptionName: #type (this: *IDxcOptimizerPass, ppResult: **s16) -> HRESULT #cpp_method
GetDescription: #type (this: *IDxcOptimizerPass, ppResult: **s16) -> HRESULT #cpp_method
GetOptionArgCount: #type (this: *IDxcOptimizerPass, pCount: *u32) -> HRESULT #cpp_method
GetOptionArgName: #type (this: *IDxcOptimizerPass, argIndex: u32, ppResult: **s16) -> HRESULT #cpp_method
GetOptionArgDescription: #type (this: *IDxcOptimizerPass, argIndex: u32, ppResult: **s16) -> HRESULT #cpp_method
:: struct
vtable: IUnknown_VTable
Load: #type (this: *IDxcPdbUtils2, pPdbOrDxil: *IDxcBlob) -> HRESULT #cpp_method
GetSourceCount: #type (this: *IDxcPdbUtils2, pCount: *u32) -> HRESULT #cpp_method
GetSource: #type (this: *IDxcPdbUtils2, uIndex: u32, ppResult: **IDxcBlobEncoding) -> HRESULT #cpp_method
GetSourceName: #type (this: *IDxcPdbUtils2, uIndex: u32, ppResult: **IDxcBlobWide) -> HRESULT #cpp_method
GetLibraryPDBCount: #type (this: *IDxcPdbUtils2, pCount: *u32) -> HRESULT #cpp_method
GetLibraryPDB: #type (this: *IDxcPdbUtils2, uIndex: u32, ppOutPdbUtils: **IDxcPdbUtils2, ppLibraryName: **IDxcBlobWide) -> HRESULT #cpp_method
GetFlagCount: #type (this: *IDxcPdbUtils2, pCount: *u32) -> HRESULT #cpp_method
GetFlag: #type (this: *IDxcPdbUtils2, uIndex: u32, ppResult: **IDxcBlobWide) -> HRESULT #cpp_method
GetArgCount: #type (this: *IDxcPdbUtils2, pCount: *u32) -> HRESULT #cpp_method
GetArg: #type (this: *IDxcPdbUtils2, uIndex: u32, ppResult: **IDxcBlobWide) -> HRESULT #cpp_method
GetArgPairCount: #type (this: *IDxcPdbUtils2, pCount: *u32) -> HRESULT #cpp_method
GetArgPair: #type (this: *IDxcPdbUtils2, uIndex: u32, ppName: **IDxcBlobWide, ppValue: **IDxcBlobWide) -> HRESULT #cpp_method
GetDefineCount: #type (this: *IDxcPdbUtils2, pCount: *u32) -> HRESULT #cpp_method
GetDefine: #type (this: *IDxcPdbUtils2, uIndex: u32, ppResult: **IDxcBlobWide) -> HRESULT #cpp_method
GetTargetProfile: #type (this: *IDxcPdbUtils2, ppResult: **IDxcBlobWide) -> HRESULT #cpp_method
GetEntryPoint: #type (this: *IDxcPdbUtils2, ppResult: **IDxcBlobWide) -> HRESULT #cpp_method
GetMainFileName: #type (this: *IDxcPdbUtils2, ppResult: **IDxcBlobWide) -> HRESULT #cpp_method
GetHash: #type (this: *IDxcPdbUtils2, ppResult: **IDxcBlob) -> HRESULT #cpp_method
GetName: #type (this: *IDxcPdbUtils2, ppResult: **IDxcBlobWide) -> HRESULT #cpp_method
GetVersionInfo: #type (this: *IDxcPdbUtils2, ppVersionInfo: **IDxcVersionInfo) -> HRESULT #cpp_method
GetCustomToolchainID: #type (this: *IDxcPdbUtils2, pID: *u32) -> HRESULT #cpp_method
GetCustomToolchainData: #type (this: *IDxcPdbUtils2, ppBlob: **IDxcBlob) -> HRESULT #cpp_method
GetWholeDxil: #type (this: *IDxcPdbUtils2, ppResult: **IDxcBlob) -> HRESULT #cpp_method
IsFullPDB: #type (this: *IDxcPdbUtils2) -> BOOL #cpp_method
IsPDBRef: #type (this: *IDxcPdbUtils2) -> BOOL #cpp_method
:: struct
vtable: IUnknown_VTable
Load: #type (this: *IDxcPdbUtils, pPdbOrDxil: *IDxcBlob) -> HRESULT #cpp_method
GetSourceCount: #type (this: *IDxcPdbUtils, pCount: *u32) -> HRESULT #cpp_method
GetSource: #type (this: *IDxcPdbUtils, uIndex: u32, ppResult: **IDxcBlobEncoding) -> HRESULT #cpp_method
GetSourceName: #type (this: *IDxcPdbUtils, uIndex: u32, pResult: *BSTR) -> HRESULT #cpp_method
GetFlagCount: #type (this: *IDxcPdbUtils, pCount: *u32) -> HRESULT #cpp_method
GetFlag: #type (this: *IDxcPdbUtils, uIndex: u32, pResult: *BSTR) -> HRESULT #cpp_method
GetArgCount: #type (this: *IDxcPdbUtils, pCount: *u32) -> HRESULT #cpp_method
GetArg: #type (this: *IDxcPdbUtils, uIndex: u32, pResult: *BSTR) -> HRESULT #cpp_method
GetArgPairCount: #type (this: *IDxcPdbUtils, pCount: *u32) -> HRESULT #cpp_method
GetArgPair: #type (this: *IDxcPdbUtils, uIndex: u32, pName: *BSTR, pValue: *BSTR) -> HRESULT #cpp_method
GetDefineCount: #type (this: *IDxcPdbUtils, pCount: *u32) -> HRESULT #cpp_method
GetDefine: #type (this: *IDxcPdbUtils, uIndex: u32, pResult: *BSTR) -> HRESULT #cpp_method
GetTargetProfile: #type (this: *IDxcPdbUtils, pResult: *BSTR) -> HRESULT #cpp_method
GetEntryPoint: #type (this: *IDxcPdbUtils, pResult: *BSTR) -> HRESULT #cpp_method
GetMainFileName: #type (this: *IDxcPdbUtils, pResult: *BSTR) -> HRESULT #cpp_method
GetHash: #type (this: *IDxcPdbUtils, ppResult: **IDxcBlob) -> HRESULT #cpp_method
GetName: #type (this: *IDxcPdbUtils, pResult: *BSTR) -> HRESULT #cpp_method
IsFullPDB: #type (this: *IDxcPdbUtils) -> BOOL #cpp_method
GetFullPDB: #type (this: *IDxcPdbUtils, ppFullPDB: **IDxcBlob) -> HRESULT #cpp_method
GetVersionInfo: #type (this: *IDxcPdbUtils, ppVersionInfo: **IDxcVersionInfo) -> HRESULT #cpp_method
SetCompiler: #type (this: *IDxcPdbUtils, pCompiler: *IDxcCompiler3) -> HRESULT #cpp_method
CompileForFullPDB: #type (this: *IDxcPdbUtils, ppResult: **IDxcResult) -> HRESULT #cpp_method
OverrideArgs: #type (this: *IDxcPdbUtils, pArgPairs: *DxcArgPair, uNumArgPairs: u32) -> HRESULT #cpp_method
OverrideRootSignature: #type (this: *IDxcPdbUtils, pRootSignature: *s16) -> HRESULT #cpp_method
:: struct
HasOutput: #type (this: *IDxcResult, dxcOutKind: DXC_OUT_KIND) -> BOOL #cpp_method
GetOutput: #type (this: *IDxcResult, dxcOutKind: DXC_OUT_KIND, iid: *IID, ppvObject: **void, ppOutputName: **IDxcBlobWide) -> HRESULT #cpp_method
GetNumOutputs: #type (this: *IDxcResult) -> u32 #cpp_method
GetOutputByIndex: #type (this: *IDxcResult, Index: u32) -> DXC_OUT_KIND #cpp_method
PrimaryOutput: #type (this: *IDxcResult) -> DXC_OUT_KIND #cpp_method
:: struct
vtable: IUnknown_VTable
CreateBlobFromBlob: #type (this: *IDxcUtils, pBlob: *IDxcBlob, offset: u32, length: u32, ppResult: **IDxcBlob) -> HRESULT #cpp_method
CreateBlobFromPinned: #type (this: *IDxcUtils, pData: *void, size: u32, codePage: u32, ppBlobEncoding: **IDxcBlobEncoding) -> HRESULT #cpp_method
MoveToBlob: #type (this: *IDxcUtils, pData: *void, pIMalloc: *IMalloc, size: u32, codePage: u32, ppBlobEncoding: **IDxcBlobEncoding) -> HRESULT #cpp_method
CreateBlob: #type (this: *IDxcUtils, pData: *void, size: u32, codePage: u32, ppBlobEncoding: **IDxcBlobEncoding) -> HRESULT #cpp_method
LoadFile: #type (this: *IDxcUtils, pFileName: *s16, pCodePage: *u32, ppBlobEncoding: **IDxcBlobEncoding) -> HRESULT #cpp_method
CreateReadOnlyStreamFromBlob: #type (this: *IDxcUtils, pBlob: *IDxcBlob, ppStream: **IStream) -> HRESULT #cpp_method
CreateDefaultIncludeHandler: #type (this: *IDxcUtils, ppResult: **IDxcIncludeHandler) -> HRESULT #cpp_method
GetBlobAsUtf8: #type (this: *IDxcUtils, pBlob: *IDxcBlob, ppBlobEncoding: **IDxcBlobUtf8) -> HRESULT #cpp_method
GetBlobAsWide: #type (this: *IDxcUtils, pBlob: *IDxcBlob, ppBlobEncoding: **IDxcBlobWide) -> HRESULT #cpp_method
GetDxilContainerPart: #type (this: *IDxcUtils, pShader: *DxcBuffer, DxcPart: u32, ppPartData: **void, pPartSizeInBytes: *u32) -> HRESULT #cpp_method
CreateReflection: #type (this: *IDxcUtils, pData: *DxcBuffer, iid: *IID, ppvReflection: **void) -> HRESULT #cpp_method
BuildArguments: #type (this: *IDxcUtils, pSourceName: *s16, pEntryPoint: *s16, pTargetProfile: *s16, pArguments: **s16, argCount: u32, pDefines: *DxcDefine, defineCount: u32, ppArgs: **IDxcCompilerArgs) -> HRESULT #cpp_method
GetPDBContents: #type (this: *IDxcUtils, pPDBBlob: *IDxcBlob, ppHash: **IDxcBlob, ppContainer: **IDxcBlob) -> HRESULT #cpp_method
:: enum
Vertex
Fragment
Compute
Hull
Domain
Mesh
Amplification
Library
DxcTextstructforeignSource
:: struct
Ptr: *void
Size: SIZE_T
Encoding: u32

Constants#

:: GUID.{ 0x73E22D93, 0xE6CE, 0x47F3, .[0xB5, 0xBF, 0xF0, 0x66, 0x4F, 0x39, 0xC1, 0xB0] }
:: GUID.{ 0x54621DFB, 0xF2CE, 0x457E, .[0xAE, 0x8C, 0xEC, 0x35, 0x5F, 0xAE, 0xEC, 0x7C] }
:: GUID.{ 0x6245D6AF, 0x66E0, 0x48FD, .[0x80, 0xB4, 0x4D, 0x27, 0x17, 0x96, 0x74, 0x8C] }
:: GUID.{ 0x3DA636C9, 0xBA71, 0x4024, .[0xA3, 0x01, 0x30, 0xCB, 0xF1, 0x25, 0x30, 0x5B] }
:: GUID.{ 0x228B4687, 0x5A6A, 0x4730, .[0x90, 0x0C, 0x97, 0x02, 0xB2, 0x20, 0x3F, 0x54] }
:: GUID.{ 0xE6C9647E, 0x9D6A, 0x4C3B, .[0xB9, 0x4C, 0x52, 0x4B, 0x5A, 0x6C, 0x34, 0x3D] }
:: GUID.{ 0x58346CDA, 0xDDE7, 0x4497, .[0x94, 0x61, 0x6F, 0x87, 0xAF, 0x5E, 0x06, 0x59] }
:: GUID.{ 0x4605C4CB, 0x2019, 0x492A, .[0xAD, 0xA4, 0x65, 0xF2, 0x0B, 0xB7, 0xD6, 0x7F] }