diff --git a/vendor/directx/d3d_compiler/d3d_compiler.odin b/vendor/directx/d3d_compiler/d3d_compiler.odin index 2506f239c..e4a7d8df4 100644 --- a/vendor/directx/d3d_compiler/d3d_compiler.odin +++ b/vendor/directx/d3d_compiler/d3d_compiler.odin @@ -45,50 +45,57 @@ foreign d3dcompiler { -D3DCOMPILE :: enum u32 { // TODO: make bit_field - DEBUG = 1 << 0, - SKIP_VALIDATION = 1 << 1, - SKIP_OPTIMIZATION = 1 << 2, - PACK_MATRIX_ROW_MAJOR = 1 << 3, - PACK_MATRIX_COLUMN_MAJOR = 1 << 4, - PARTIAL_PRECISION = 1 << 5, - FORCE_VS_SOFTWARE_NO_OPT = 1 << 6, - FORCE_PS_SOFTWARE_NO_OPT = 1 << 7, - NO_PRESHADER = 1 << 8, - AVOID_FLOW_CONTROL = 1 << 9, - PREFER_FLOW_CONTROL = 1 << 10, - ENABLE_STRICTNESS = 1 << 11, - ENABLE_BACKWARDS_COMPATIBILITY = 1 << 12, - IEEE_STRICTNESS = 1 << 13, - OPTIMIZATION_LEVEL0 = 1 << 14, - OPTIMIZATION_LEVEL1 = 0, - OPTIMIZATION_LEVEL2 = (1 << 14)|(1 << 15), // Added manually - OPTIMIZATION_LEVEL3 = 1 << 15, - RESERVED16 = 1 << 16, - RESERVED17 = 1 << 17, - WARNINGS_ARE_ERRORS = 1 << 18, - RESOURCES_MAY_ALIAS = 1 << 19, - ENABLE_UNBOUNDED_DESCRIPTOR_TABLES = 1 << 20, - ALL_RESOURCES_BOUND = 1 << 21, - DEBUG_NAME_FOR_SOURCE = 1 << 22, - DEBUG_NAME_FOR_BINARY = 1 << 23, +D3DCOMPILE :: distinct bit_set[D3DCOMPILE_FLAG; u32] +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 :: enum u32 { // TODO: make bit_field - CHILD_EFFECT = 1 << 0, - ALLOW_SLOW_OPS = 1 << 1, +D3DCOMPILE_OPTIMIZATION_LEVEL0 :: D3DCOMPILE{.OPTIMIZATION_LEVEL0} +D3DCOMPILE_OPTIMIZATION_LEVEL1 :: D3DCOMPILE{} +D3DCOMPILE_OPTIMIZATION_LEVEL2 :: D3DCOMPILE{.IEEE_STRICTNESS, .OPTIMIZATION_LEVEL3} +D3DCOMPILE_OPTIMIZATION_LEVEL3 :: D3DCOMPILE{.OPTIMIZATION_LEVEL3} + + +EFFECT :: distinct bit_set[EFFECT_FLAG; u32] +EFFECT_FLAG :: enum u32 { + CHILD_EFFECT = 0, + ALLOW_SLOW_OPS = 1, } -FLAGS2 :: enum u32 { // TODO: make bit_field +FLAGS2 :: enum u32 { FORCE_ROOT_SIGNATURE_LATEST = 0, FORCE_ROOT_SIGNATURE_1_0 = 1 << 4, FORCE_ROOT_SIGNATURE_1_1 = 1 << 5, } -SECDATA :: enum u32 { // TODO: make bit_field - MERGE_UAV_SLOTS = 0x00000001, - PRESERVE_TEMPLATE_SLOTS = 0x00000002, - REQUIRE_TEMPLATE_MATCH = 0x00000004, +SECDATA :: distinct bit_set[SECDATA_FLAG; u32] +SECDATA_FLAG :: enum u32 { + MERGE_UAV_SLOTS = 0, + PRESERVE_TEMPLATE_SLOTS = 1, + REQUIRE_TEMPLATE_MATCH = 2, } DISASM_ENABLE_COLOR_CODE :: 0x00000001 @@ -188,13 +195,13 @@ pD3DCompile :: #type proc "c" (a0: rawptr, a1: SIZE_T, a2: cstring, a3: ^SHA pD3DPreprocess :: #type proc "c" (a0: rawptr, a1: SIZE_T, a2: cstring, a3: ^SHADER_MACRO, a4: ^ID3DInclude, a5: ^^ID3DBlob, a6: ^^ID3DBlob) -> HRESULT pD3DDisassemble :: #type proc "c" (a0: rawptr, a1: SIZE_T, a2: u32, a3: cstring, a4: ^^ID3DBlob) -> HRESULT -D3DCOMPILER_STRIP_FLAGS :: enum u32 { // TODO: make bit_field - REFLECTION_DATA = 0x1, - DEBUG_INFO = 0x2, - TEST_BLOBS = 0x4, - PRIVATE_DATA = 0x8, - ROOT_SIGNATURE = 0x10, - FORCE_DWORD = 0x7fffffff, +D3DCOMPILER_STRIP_FLAGS :: distinct bit_set[D3DCOMPILER_STRIP_FLAG; u32] +D3DCOMPILER_STRIP_FLAG :: enum u32 { + REFLECTION_DATA = 0, + DEBUG_INFO = 1, + TEST_BLOBS = 2, + PRIVATE_DATA = 3, + ROOT_SIGNATURE = 4, } BLOB_PART :: enum i32 { diff --git a/vendor/directx/dxgi/dxgi.odin b/vendor/directx/dxgi/dxgi.odin index 24b85e9f3..5ad938ba0 100644 --- a/vendor/directx/dxgi/dxgi.odin +++ b/vendor/directx/dxgi/dxgi.odin @@ -57,14 +57,15 @@ CPU_ACCESS :: enum u32 { FIELD = 15, } -USAGE :: enum u32 { // TODO: convert to bit_set - SHADER_INPUT = 0x00000010, - RENDER_TARGET_OUTPUT = 0x00000020, - BACK_BUFFER = 0x00000040, - SHARED = 0x00000080, - READ_ONLY = 0x00000100, - DISCARD_ON_PRESENT = 0x00000200, - UNORDERED_ACCESS = 0x00000400, +USAGE :: distinct bit_set[USAGE_FLAG; u32] +USAGE_FLAG :: enum u32 { + SHADER_INPUT = 4, + RENDER_TARGET_OUTPUT = 5, + BACK_BUFFER = 6, + SHARED = 7, + READ_ONLY = 8, + DISCARD_ON_PRESENT = 9, + UNORDERED_ACCESS = 10, } RESOURCE_PRIORITY :: enum u32 { @@ -75,37 +76,45 @@ RESOURCE_PRIORITY :: enum u32 { MAXIMUM = 0xc8000000, } -MAP :: enum u32 { // TODO: convert to bit_set +MAP :: enum u32 { READ = 1, WRITE = 2, DISCARD = 4, } -ENUM_MODES :: enum u32 { // TODO: convert to bit_set - INTERLACED = 1, - SCALING = 2, - STEREO = 4, - DISABLED_STEREO = 8, +ENUM_MODES :: distinct bit_set[ENUM_MODE; u32] +ENUM_MODE :: enum u32 { + INTERLACED = 0, + SCALING = 1, + STEREO = 2, + DISABLED_STEREO = 3, } MAX_SWAP_CHAIN_BUFFERS :: 16 -PRESENT :: enum u32 { // TODO: convert to bit_set - TEST = 0x00000001, - DO_NOT_SEQUENCE = 0x00000002, - RESTART = 0x00000004, - DO_NOT_WAIT = 0x00000008, - STEREO_PREFER_RIGHT = 0x00000010, - STEREO_TEMPORARY_MONO = 0x00000020, - RESTRICT_TO_OUTPUT = 0x00000040, - USE_DURATION = 0x00000100, - ALLOW_TEARING = 0x00000200, +PRESENT :: distinct bit_set[PRESENT_FLAG; u32] +PRESENT_FLAG :: enum u32 { + TEST = 0, + DO_NOT_SEQUENCE = 1, + RESTART = 2, + DO_NOT_WAIT = 3, + STEREO_PREFER_RIGHT = 4, + STEREO_TEMPORARY_MONO = 5, + RESTRICT_TO_OUTPUT = 6, + + USE_DURATION = 8, + ALLOW_TEARING = 9, } -MWA :: enum u32 { // TODO: convert to bit_set - NO_WINDOW_CHANGES = 1 << 0, - NO_ALT_ENTER = 1 << 1, - NO_PRINT_SCREEN = 1 << 2, - VALID = 0x7, +MWA :: distinct bit_set[MWA_FLAG; u32] +MWA_FLAG :: enum u32 { + NO_WINDOW_CHANGES = 0, + NO_ALT_ENTER = 1, + NO_PRINT_SCREEN = 2, +} +MWA_VALID :: MWA{ + .NO_WINDOW_CHANGES, + .NO_ALT_ENTER, + .NO_PRINT_SCREEN, } SHARED_RESOURCE_READ :: 0x80000000