package vendor:directx/d3d_compiler

⌘K
Ctrl+K
or
/

    Overview

    Bindings for Direct3D Shader Compiler.

    External Examples 3 ¶

    The programs in odin-lang/examples about this package, and how many of its declarations each uses.

    Types

    BLOB_PART ¶

    BLOB_PART :: enum i32 {
    	INPUT_SIGNATURE_BLOB            = 0, 
    	OUTPUT_SIGNATURE_BLOB           = 1, 
    	INPUT_AND_OUTPUT_SIGNATURE_BLOB = 2, 
    	PATCH_CONSTANT_SIGNATURE_BLOB   = 3, 
    	ALL_SIGNATURE_BLOB              = 4, 
    	DEBUG_INFO                      = 5, 
    	LEGACY_SHADER                   = 6, 
    	XNA_PREPASS_SHADER              = 7, 
    	XNA_SHADER                      = 8, 
    	PDB                             = 9, 
    	PRIVATE_DATA                    = 10, 
    	ROOT_SIGNATURE                  = 11, 
    	DEBUG_NAME                      = 12, 
    	TEST_ALTERNATE_SHADER           = 32768, 
    	TEST_COMPILE_DETAILS            = 32769, 
    	TEST_COMPILE_PERF               = 32770, 
    	TEST_COMPILE_REPORT             = 32771, 
    }

    Related Procedures With Parameters

    BOOL ¶

    BOOL :: sys_windows.BOOL

    D3DCOMPILER_STRIP_FLAG ¶

    D3DCOMPILER_STRIP_FLAG :: enum u32 {
    	REFLECTION_DATA = 0, 
    	DEBUG_INFO      = 1, 
    	TEST_BLOBS      = 2, 
    	PRIVATE_DATA    = 3, 
    	ROOT_SIGNATURE  = 4, 
    }

    D3DCOMPILE_FLAG ¶

    D3DCOMPILE_FLAG :: enum u32 {
    	DEBUG                              = 0, 
    	SKIP_VALIDATION                    = 1, 
    	SKIP_OPTIMIZATION                  = 2, 
    	PACK_MATRIX_ROW_MAJOR              = 3, 
    	PACK_MATRIX_COLUMN_MAJOR           = 4, 
    	PARTIAL_PRECISION                  = 5, 
    	FORCE_VS_SOFTWARE_NO_OPT           = 6, 
    	FORCE_PS_SOFTWARE_NO_OPT           = 7, 
    	NO_PRESHADER                       = 8, 
    	AVOID_FLOW_CONTROL                 = 9, 
    	PREFER_FLOW_CONTROL                = 10, 
    	ENABLE_STRICTNESS                  = 11, 
    	ENABLE_BACKWARDS_COMPATIBILITY     = 12, 
    	IEEE_STRICTNESS                    = 13, 
    	OPTIMIZATION_LEVEL0                = 14, 
    	OPTIMIZATION_LEVEL3                = 15, 
    	RESERVED16                         = 16, 
    	RESERVED17                         = 17, 
    	WARNINGS_ARE_ERRORS                = 18, 
    	RESOURCES_MAY_ALIAS                = 19, 
    	ENABLE_UNBOUNDED_DESCRIPTOR_TABLES = 20, 
    	ALL_RESOURCES_BOUND                = 21, 
    	DEBUG_NAME_FOR_SOURCE              = 22, 
    	DEBUG_NAME_FOR_BINARY              = 23, 
    }

    EFFECT_FLAG ¶

    EFFECT_FLAG :: enum u32 {
    	CHILD_EFFECT   = 0, 
    	ALLOW_SLOW_OPS = 1, 
    }

    FLAGS2 ¶

    FLAGS2 :: enum u32 {
    	FORCE_ROOT_SIGNATURE_LATEST = 0, 
    	FORCE_ROOT_SIGNATURE_1_0    = 1 << 4, 
    	FORCE_ROOT_SIGNATURE_1_1    = 1 << 5, 
    }

    ID3D10Effect ¶

    ID3D10Effect :: struct {}

    ID3D11Linker ¶

    ID3D11Linker :: struct #raw_union {
    	iunknown:            sys_windows.IUnknown,
    	using id3d11linker_vtable: ^ID3D11Linker_VTable,
    }

    Fields Through using (6)

    From using id3d11linker_vtable: ^ID3D11Linker_VTable

    ID3D11Linker_VTable ¶

    ID3D11Linker_VTable :: struct {
    	using iunknown_vtable:   sys_windows.IUnknown_VTable,
    	Link:                    proc "stdcall" (this: ^ID3D11Linker, pEntry: ^directx_d3d11.IModuleInstance, pEntryName: cstring, pTargetName: cstring, uFlags: u32, ppShaderBlob: ^^d3d_common.ID3D10Blob, ppErrorBuffer: ^^d3d_common.ID3D10Blob) -> sys_windows.HRESULT,
    	UseLibrary:              proc "stdcall" (this: ^ID3D11Linker, pLibraryMI: ^directx_d3d11.IModuleInstance) -> sys_windows.HRESULT,
    	AddClipPlaneFromCBuffer: proc "stdcall" (this: ^ID3D11Linker, uCBufferSlot: u32, uCBufferEntry: u32) -> sys_windows.HRESULT,
    }

    Fields Through using (3)

    From using iunknown_vtable: sys_windows.IUnknown_VTable
    • QueryInterface: proc "stdcall" (This: ^sys_windows.IUnknown, riid: ^sys_windows.GUID, ppvObject: ^rawptr) -> sys_windows.HRESULT
    • AddRef: proc "stdcall" (This: ^sys_windows.IUnknown) -> u32
    • Release: proc "stdcall" (This: ^sys_windows.IUnknown) -> u32

    ID3DBlob ¶

    ID3DBlob :: d3d_common.ID3D10Blob

    Fields Through using (5)

    From using id3d10blob_vtable: ^d3d_common.ID3D10Blob_VTable
    • QueryInterface: proc "stdcall" (This: ^sys_windows.IUnknown, riid: ^sys_windows.GUID, ppvObject: ^rawptr) -> sys_windows.HRESULT // through iunknown_vtable
    • AddRef: proc "stdcall" (This: ^sys_windows.IUnknown) -> u32 // through iunknown_vtable
    • Release: proc "stdcall" (This: ^sys_windows.IUnknown) -> u32 // through iunknown_vtable
    • GetBufferPointer: proc "stdcall" (this: ^d3d_common.ID3D10Blob) -> rawptr
    • GetBufferSize: proc "stdcall" (this: ^d3d_common.ID3D10Blob) -> uint

    ID3DInclude ¶

    ID3DInclude :: struct {
    	vtable: ^ID3DInclude_VTable,
    }

    Related Procedures With Parameters

    ID3DInclude_VTable ¶

    ID3DInclude_VTable :: struct {
    	Open:  proc "stdcall" (this: ^ID3DInclude, IncludeType: INCLUDE_TYPE, pFileName: cstring, pParentData: rawptr, ppData: ^rawptr, pBytes: ^u32) -> sys_windows.HRESULT,
    	Close: proc "stdcall" (this: ^ID3DInclude, pData: rawptr) -> sys_windows.HRESULT,
    }

    IID ¶

    IID :: sys_windows.GUID

    Related Procedures With Parameters

    INCLUDE_TYPE ¶

    INCLUDE_TYPE :: enum i32 {
    	INCLUDE_LOCAL      = 0, 
    	INCLUDE_SYSTEM     = 1, 
    	_10_INCLUDE_LOCAL  = 0, 
    	_10_INCLUDE_SYSTEM = 1, 
    }

    IUnknown ¶

    IUnknown :: sys_windows.IUnknown

    Fields Through using (3)

    From using _iunknown_vtable: ^sys_windows.IUnknown_VTable
    • QueryInterface: proc "stdcall" (This: ^sys_windows.IUnknown, riid: ^sys_windows.GUID, ppvObject: ^rawptr) -> sys_windows.HRESULT
    • AddRef: proc "stdcall" (This: ^sys_windows.IUnknown) -> u32
    • Release: proc "stdcall" (This: ^sys_windows.IUnknown) -> u32

    SECDATA_FLAG ¶

    SECDATA_FLAG :: enum u32 {
    	MERGE_UAV_SLOTS         = 0, 
    	PRESERVE_TEMPLATE_SLOTS = 1, 
    	REQUIRE_TEMPLATE_MATCH  = 2, 
    }

    SHADER_DATA ¶

    SHADER_DATA :: struct {
    	pBytecode:      rawptr,
    	BytecodeLength: uint,
    }

    SHADER_MACRO ¶

    SHADER_MACRO :: struct {
    	Name:       cstring,
    	Definition: cstring,
    }

    Related Procedures With Parameters

    pD3DCompile ¶

    pD3DCompile :: proc "c" (a0: rawptr, a1: uint, a2: cstring, a3: ^SHADER_MACRO, a4: ^ID3DInclude, a5: cstring, a6: cstring, a7: u32, a8: u32, a9: ^^d3d_common.ID3D10Blob, a10: ^^d3d_common.ID3D10Blob) -> sys_windows.HRESULT

    pD3DDisassemble ¶

    pD3DDisassemble :: proc "c" (a0: rawptr, a1: uint, a2: u32, a3: cstring, a4: ^^d3d_common.ID3D10Blob) -> sys_windows.HRESULT

    pD3DPreprocess ¶

    pD3DPreprocess :: proc "c" (a0: rawptr, a1: uint, a2: cstring, a3: ^SHADER_MACRO, a4: ^ID3DInclude, a5: ^^d3d_common.ID3D10Blob, a6: ^^d3d_common.ID3D10Blob) -> sys_windows.HRESULT

    Constants

    COMPRESS_SHADER_KEEP_ALL_PARTS ¶

    COMPRESS_SHADER_KEEP_ALL_PARTS :: 0x00000001

    D3DCOMPILER_DLL_A ¶

    D3DCOMPILER_DLL_A :: "d3dcompiler_47.dll"

    D3DCOMPILE_OPTIMIZATION_LEVEL0 ¶

    D3DCOMPILE_OPTIMIZATION_LEVEL0 :: D3DCOMPILE{.OPTIMIZATION_LEVEL0}

    D3DCOMPILE_OPTIMIZATION_LEVEL1 ¶

    D3DCOMPILE_OPTIMIZATION_LEVEL1 :: D3DCOMPILE{}

    D3DCOMPILE_OPTIMIZATION_LEVEL2 ¶

    D3DCOMPILE_OPTIMIZATION_LEVEL2 :: D3DCOMPILE{.IEEE_STRICTNESS, .OPTIMIZATION_LEVEL3}

    D3DCOMPILE_OPTIMIZATION_LEVEL3 ¶

    D3DCOMPILE_OPTIMIZATION_LEVEL3 :: D3DCOMPILE{.OPTIMIZATION_LEVEL3}

    D3DCOMPILE_STANDARD_FILE_INCLUDE ¶

    D3DCOMPILE_STANDARD_FILE_INCLUDE: ^ID3DInclude : (^ID3DInclude)(uintptr(1))
     

    Default file includer

    DISASM_DISABLE_DEBUG_INFO ¶

    DISASM_DISABLE_DEBUG_INFO :: 0x00000010

    DISASM_ENABLE_COLOR_CODE ¶

    DISASM_ENABLE_COLOR_CODE :: 0x00000001

    DISASM_ENABLE_DEFAULT_VALUE_PRINTS ¶

    DISASM_ENABLE_DEFAULT_VALUE_PRINTS :: 0x00000002

    DISASM_ENABLE_INSTRUCTION_CYCLE ¶

    DISASM_ENABLE_INSTRUCTION_CYCLE :: 0x00000008

    DISASM_ENABLE_INSTRUCTION_NUMBERING ¶

    DISASM_ENABLE_INSTRUCTION_NUMBERING :: 0x00000004

    DISASM_ENABLE_INSTRUCTION_OFFSET ¶

    DISASM_ENABLE_INSTRUCTION_OFFSET :: 0x00000020

    DISASM_INSTRUCTION_ONLY ¶

    DISASM_INSTRUCTION_ONLY :: 0x00000040

    DISASM_PRINT_HEX_LITERALS ¶

    DISASM_PRINT_HEX_LITERALS :: 0x00000080

    GET_INST_OFFSETS_INCLUDE_NON_EXECUTABLE ¶

    GET_INST_OFFSETS_INCLUDE_NON_EXECUTABLE :: 0x00000001

    Variables

    This section is empty.

    Procedures

    Compile ¶

    Compile :: proc "stdcall" (
    	pSrcData:    rawptr, 
    	SrcDataSize: uint, 
    	pSourceName: cstring, 
    	pDefines:    ^SHADER_MACRO, 
    	pInclude:    ^ID3DInclude, 
    	pEntrypoint: cstring, 
    	pTarget:     cstring, 
    	Flags1:      u32, 
    	Flags2:      u32, 
    	ppCode:      ^^d3d_common.ID3D10Blob, 
    	ppErrorMsgs: ^^d3d_common.ID3D10Blob, 
    ) -> sys_windows.HRESULT ---
    External examples directx/d3d11_minimal_sdl2 · directx/d3d11_minimal_sdl3 · directx/d3d12_triangle_sdl2

    Compile2 ¶

    Compile2 :: proc "stdcall" (
    	pSrcData:           rawptr, 
    	SrcDataSize:        uint, 
    	pSourceName:        cstring, 
    	pDefines:           ^SHADER_MACRO, 
    	pInclude:           ^ID3DInclude, 
    	pEntrypoint:        cstring, 
    	pTarget:            cstring, 
    	Flags1:             u32, 
    	Flags2:             u32, 
    	SecondaryDataFlags: u32, 
    	pSecondaryData:     rawptr, 
    	SecondaryDataSize:  uint, 
    	ppCode:             ^^d3d_common.ID3D10Blob, 
    	ppErrorMsgs:        ^^d3d_common.ID3D10Blob, 
    ) -> sys_windows.HRESULT ---

    CompileFromFile ¶
    C · D3DCompileFromFileSource · d3d_compiler.odin:32

    CompileFromFile :: proc "stdcall" (
    	pFileName:   cstring16, 
    	pDefines:    ^SHADER_MACRO, 
    	pInclude:    ^ID3DInclude, 
    	pEntrypoint: cstring, 
    	pTarget:     cstring, 
    	Flags1:      u32, 
    	Flags2:      u32, 
    	ppCode:      ^^d3d_common.ID3D10Blob, 
    	ppErrorMsgs: ^^d3d_common.ID3D10Blob, 
    ) -> sys_windows.HRESULT ---

    CompressShaders ¶
    C · D3DCompressShadersSource · d3d_compiler.odin:49

    CompressShaders :: proc "stdcall" (
    	uNumShaders:      u32, 
    	pShaderData:      ^SHADER_DATA, 
    	uFlags:           u32, 
    	ppCompressedData: ^^d3d_common.ID3D10Blob, 
    ) -> sys_windows.HRESULT ---

    CreateBlob ¶

    CreateBlob :: proc "stdcall" (
    	Size:   uint, 
    	ppBlob: ^^d3d_common.ID3D10Blob, 
    ) -> sys_windows.HRESULT ---

    CreateLinker ¶
    C · D3DCreateLinkerSource · d3d_compiler.odin:39

    CreateLinker :: proc "stdcall" (ppLinker: ^^ID3D11Linker) -> sys_windows.HRESULT ---

    DecompressShaders ¶
    C · D3DDecompressShadersSource · d3d_compiler.odin:50

    DecompressShaders :: proc "stdcall" (
    	pSrcData:      rawptr, 
    	SrcDataSize:   uint, 
    	uNumShaders:   u32, 
    	uStartIndex:   u32, 
    	pIndices:      ^u32, 
    	uFlags:        u32, 
    	ppShaders:     [^]^d3d_common.ID3D10Blob, 
    	pTotalShaders: ^u32, 
    ) -> sys_windows.HRESULT ---

    Disassemble ¶

    Disassemble :: proc "stdcall" (
    	pSrcData:      rawptr, 
    	SrcDataSize:   uint, 
    	Flags:         u32, 
    	szComments:    cstring, 
    	ppDisassembly: ^^d3d_common.ID3D10Blob, 
    ) -> sys_windows.HRESULT ---

    Disassemble10Effect ¶
    C · D3DDisassemble10EffectSource · d3d_compiler.odin:51

    Disassemble10Effect :: proc "stdcall" (
    	pEffect:       ^ID3D10Effect, 
    	Flags:         u32, 
    	ppDisassembly: ^^d3d_common.ID3D10Blob, 
    ) -> sys_windows.HRESULT ---

    DisassembleRegion ¶
    C · D3DDisassembleRegionSource · d3d_compiler.odin:38

    DisassembleRegion :: proc "stdcall" (
    	pSrcData:          rawptr, 
    	SrcDataSize:       uint, 
    	Flags:             u32, 
    	szComments:        cstring, 
    	StartByteOffset:   uint, 
    	NumInsts:          uint, 
    	pFinishByteOffset: ^uint, 
    	ppDisassembly:     ^^d3d_common.ID3D10Blob, 
    ) -> sys_windows.HRESULT ---

    GetBlobPart ¶

    GetBlobPart :: proc "stdcall" (
    	pSrcData:    rawptr, 
    	SrcDataSize: uint, 
    	Part:        BLOB_PART, 
    	Flags:       u32, 
    	ppPart:      ^^d3d_common.ID3D10Blob, 
    ) -> sys_windows.HRESULT ---

    GetDebugInfo ¶
    C · D3DGetDebugInfoSource · d3d_compiler.odin:34

    GetDebugInfo :: proc "stdcall" (
    	pSrcData:    rawptr, 
    	SrcDataSize: uint, 
    	ppDebugInfo: ^^d3d_common.ID3D10Blob, 
    ) -> sys_windows.HRESULT ---

    GetInputAndOutputSignatureBlob ¶
    C · D3DGetInputAndOutputSignatureBlobSource · d3d_compiler.odin:44

    GetInputAndOutputSignatureBlob :: proc "stdcall" (
    	pSrcData:        rawptr, 
    	SrcDataSize:     uint, 
    	ppSignatureBlob: ^^d3d_common.ID3D10Blob, 
    ) -> sys_windows.HRESULT ---

    GetInputSignatureBlob ¶
    C · D3DGetInputSignatureBlobSource · d3d_compiler.odin:42

    GetInputSignatureBlob :: proc "stdcall" (
    	pSrcData:        rawptr, 
    	SrcDataSize:     uint, 
    	ppSignatureBlob: ^^d3d_common.ID3D10Blob, 
    ) -> sys_windows.HRESULT ---

    GetOutputSignatureBlob ¶
    C · D3DGetOutputSignatureBlobSource · d3d_compiler.odin:43

    GetOutputSignatureBlob :: proc "stdcall" (
    	pSrcData:        rawptr, 
    	SrcDataSize:     uint, 
    	ppSignatureBlob: ^^d3d_common.ID3D10Blob, 
    ) -> sys_windows.HRESULT ---

    GetTraceInstructionOffsets ¶
    C · D3DGetTraceInstructionOffsetsSource · d3d_compiler.odin:41

    GetTraceInstructionOffsets :: proc "stdcall" (
    	pSrcData:       rawptr, 
    	SrcDataSize:    uint, 
    	Flags:          u32, 
    	StartInstIndex: uint, 
    	NumInsts:       uint, 
    	pOffsets:       ^uint, 
    	pTotalInsts:    ^uint, 
    ) -> sys_windows.HRESULT ---

    LoadModule ¶

    LoadModule :: proc "stdcall" (
    	pSrcData:      rawptr, 
    	cbSrcDataSize: uint, 
    	ppModule:      ^^directx_d3d11.IModule, 
    ) -> sys_windows.HRESULT ---

    Preprocess ¶

    Preprocess :: proc "stdcall" (
    	pSrcData:    rawptr, 
    	SrcDataSize: uint, 
    	pSourceName: cstring, 
    	pDefines:    ^SHADER_MACRO, 
    	pInclude:    ^ID3DInclude, 
    	ppCodeText:  ^^d3d_common.ID3D10Blob, 
    	ppErrorMsgs: ^^d3d_common.ID3D10Blob, 
    ) -> sys_windows.HRESULT ---

    ReadFileToBlob ¶
    C · D3DReadFileToBlobSource · d3d_compiler.odin:28

    ReadFileToBlob :: proc "stdcall" (
    	pFileName:  cstring16, 
    	ppContents: ^^d3d_common.ID3D10Blob, 
    ) -> sys_windows.HRESULT ---

    Reflect ¶

    Reflect :: proc "stdcall" (
    	pSrcData:    rawptr, 
    	SrcDataSize: uint, 
    	pInterface:  ^sys_windows.GUID, 
    	ppReflector: ^rawptr, 
    ) -> sys_windows.HRESULT ---

    ReflectLibrary ¶
    C · D3DReflectLibrarySource · d3d_compiler.odin:36

    ReflectLibrary :: proc "stdcall" (
    	pSrcData:    rawptr, 
    	SrcDataSize: uint, 
    	riid:        ^sys_windows.GUID, 
    	ppReflector: ^rawptr, 
    ) -> sys_windows.HRESULT ---

    SetBlobPart ¶

    SetBlobPart :: proc "stdcall" (
    	pSrcData:    rawptr, 
    	SrcDataSize: uint, 
    	Part:        BLOB_PART, 
    	Flags:       u32, 
    	pPart:       rawptr, 
    	PartSize:    uint, 
    	ppNewShader: ^^d3d_common.ID3D10Blob, 
    ) -> sys_windows.HRESULT ---

    StripShader ¶

    StripShader :: proc "stdcall" (
    	pShaderBytecode: rawptr, 
    	BytecodeLength:  uint, 
    	uStripFlags:     u32, 
    	ppStrippedBlob:  ^^d3d_common.ID3D10Blob, 
    ) -> sys_windows.HRESULT ---

    WriteBlobToFile ¶
    C · D3DWriteBlobToFileSource · d3d_compiler.odin:29

    WriteBlobToFile :: proc "stdcall" (
    	pBlob:      ^d3d_common.ID3D10Blob, 
    	pFileName:  cstring16, 
    	bOverwrite: sys_windows.BOOL, 
    ) -> sys_windows.HRESULT ---

    Procedure Groups

    This section is empty.

    Source Files

    Generation Information

    Generated with odin version dev-2026-10 (vendor "odin") Windows_amd64 @ 2026-10-21 23:51:49.279618400 +0000 UTC