Add more bit_sets to direct packages

This commit is contained in:
gingerBill
2022-11-02 23:12:43 +00:00
parent 717522efe4
commit 1a6d4c955a
2 changed files with 87 additions and 71 deletions
+49 -42
View File
@@ -45,50 +45,57 @@ foreign d3dcompiler {
D3DCOMPILE :: enum u32 { // TODO: make bit_field D3DCOMPILE :: distinct bit_set[D3DCOMPILE_FLAG; u32]
DEBUG = 1 << 0, D3DCOMPILE_FLAG :: enum u32 {
SKIP_VALIDATION = 1 << 1, DEBUG = 0,
SKIP_OPTIMIZATION = 1 << 2, SKIP_VALIDATION = 1,
PACK_MATRIX_ROW_MAJOR = 1 << 3, SKIP_OPTIMIZATION = 2,
PACK_MATRIX_COLUMN_MAJOR = 1 << 4, PACK_MATRIX_ROW_MAJOR = 3,
PARTIAL_PRECISION = 1 << 5, PACK_MATRIX_COLUMN_MAJOR = 4,
FORCE_VS_SOFTWARE_NO_OPT = 1 << 6, PARTIAL_PRECISION = 5,
FORCE_PS_SOFTWARE_NO_OPT = 1 << 7, FORCE_VS_SOFTWARE_NO_OPT = 6,
NO_PRESHADER = 1 << 8, FORCE_PS_SOFTWARE_NO_OPT = 7,
AVOID_FLOW_CONTROL = 1 << 9, NO_PRESHADER = 8,
PREFER_FLOW_CONTROL = 1 << 10, AVOID_FLOW_CONTROL = 9,
ENABLE_STRICTNESS = 1 << 11, PREFER_FLOW_CONTROL = 10,
ENABLE_BACKWARDS_COMPATIBILITY = 1 << 12, ENABLE_STRICTNESS = 11,
IEEE_STRICTNESS = 1 << 13, ENABLE_BACKWARDS_COMPATIBILITY = 12,
OPTIMIZATION_LEVEL0 = 1 << 14, IEEE_STRICTNESS = 13,
OPTIMIZATION_LEVEL1 = 0, OPTIMIZATION_LEVEL0 = 14,
OPTIMIZATION_LEVEL2 = (1 << 14)|(1 << 15), // Added manually OPTIMIZATION_LEVEL3 = 15,
OPTIMIZATION_LEVEL3 = 1 << 15, RESERVED16 = 16,
RESERVED16 = 1 << 16, RESERVED17 = 17,
RESERVED17 = 1 << 17, WARNINGS_ARE_ERRORS = 18,
WARNINGS_ARE_ERRORS = 1 << 18, RESOURCES_MAY_ALIAS = 19,
RESOURCES_MAY_ALIAS = 1 << 19, ENABLE_UNBOUNDED_DESCRIPTOR_TABLES = 20,
ENABLE_UNBOUNDED_DESCRIPTOR_TABLES = 1 << 20, ALL_RESOURCES_BOUND = 21,
ALL_RESOURCES_BOUND = 1 << 21, DEBUG_NAME_FOR_SOURCE = 22,
DEBUG_NAME_FOR_SOURCE = 1 << 22, DEBUG_NAME_FOR_BINARY = 23,
DEBUG_NAME_FOR_BINARY = 1 << 23,
} }
EFFECT :: enum u32 { // TODO: make bit_field D3DCOMPILE_OPTIMIZATION_LEVEL0 :: D3DCOMPILE{.OPTIMIZATION_LEVEL0}
CHILD_EFFECT = 1 << 0, D3DCOMPILE_OPTIMIZATION_LEVEL1 :: D3DCOMPILE{}
ALLOW_SLOW_OPS = 1 << 1, 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_LATEST = 0,
FORCE_ROOT_SIGNATURE_1_0 = 1 << 4, FORCE_ROOT_SIGNATURE_1_0 = 1 << 4,
FORCE_ROOT_SIGNATURE_1_1 = 1 << 5, FORCE_ROOT_SIGNATURE_1_1 = 1 << 5,
} }
SECDATA :: enum u32 { // TODO: make bit_field SECDATA :: distinct bit_set[SECDATA_FLAG; u32]
MERGE_UAV_SLOTS = 0x00000001, SECDATA_FLAG :: enum u32 {
PRESERVE_TEMPLATE_SLOTS = 0x00000002, MERGE_UAV_SLOTS = 0,
REQUIRE_TEMPLATE_MATCH = 0x00000004, PRESERVE_TEMPLATE_SLOTS = 1,
REQUIRE_TEMPLATE_MATCH = 2,
} }
DISASM_ENABLE_COLOR_CODE :: 0x00000001 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 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 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 D3DCOMPILER_STRIP_FLAGS :: distinct bit_set[D3DCOMPILER_STRIP_FLAG; u32]
REFLECTION_DATA = 0x1, D3DCOMPILER_STRIP_FLAG :: enum u32 {
DEBUG_INFO = 0x2, REFLECTION_DATA = 0,
TEST_BLOBS = 0x4, DEBUG_INFO = 1,
PRIVATE_DATA = 0x8, TEST_BLOBS = 2,
ROOT_SIGNATURE = 0x10, PRIVATE_DATA = 3,
FORCE_DWORD = 0x7fffffff, ROOT_SIGNATURE = 4,
} }
BLOB_PART :: enum i32 { BLOB_PART :: enum i32 {
+38 -29
View File
@@ -57,14 +57,15 @@ CPU_ACCESS :: enum u32 {
FIELD = 15, FIELD = 15,
} }
USAGE :: enum u32 { // TODO: convert to bit_set USAGE :: distinct bit_set[USAGE_FLAG; u32]
SHADER_INPUT = 0x00000010, USAGE_FLAG :: enum u32 {
RENDER_TARGET_OUTPUT = 0x00000020, SHADER_INPUT = 4,
BACK_BUFFER = 0x00000040, RENDER_TARGET_OUTPUT = 5,
SHARED = 0x00000080, BACK_BUFFER = 6,
READ_ONLY = 0x00000100, SHARED = 7,
DISCARD_ON_PRESENT = 0x00000200, READ_ONLY = 8,
UNORDERED_ACCESS = 0x00000400, DISCARD_ON_PRESENT = 9,
UNORDERED_ACCESS = 10,
} }
RESOURCE_PRIORITY :: enum u32 { RESOURCE_PRIORITY :: enum u32 {
@@ -75,37 +76,45 @@ RESOURCE_PRIORITY :: enum u32 {
MAXIMUM = 0xc8000000, MAXIMUM = 0xc8000000,
} }
MAP :: enum u32 { // TODO: convert to bit_set MAP :: enum u32 {
READ = 1, READ = 1,
WRITE = 2, WRITE = 2,
DISCARD = 4, DISCARD = 4,
} }
ENUM_MODES :: enum u32 { // TODO: convert to bit_set ENUM_MODES :: distinct bit_set[ENUM_MODE; u32]
INTERLACED = 1, ENUM_MODE :: enum u32 {
SCALING = 2, INTERLACED = 0,
STEREO = 4, SCALING = 1,
DISABLED_STEREO = 8, STEREO = 2,
DISABLED_STEREO = 3,
} }
MAX_SWAP_CHAIN_BUFFERS :: 16 MAX_SWAP_CHAIN_BUFFERS :: 16
PRESENT :: enum u32 { // TODO: convert to bit_set PRESENT :: distinct bit_set[PRESENT_FLAG; u32]
TEST = 0x00000001, PRESENT_FLAG :: enum u32 {
DO_NOT_SEQUENCE = 0x00000002, TEST = 0,
RESTART = 0x00000004, DO_NOT_SEQUENCE = 1,
DO_NOT_WAIT = 0x00000008, RESTART = 2,
STEREO_PREFER_RIGHT = 0x00000010, DO_NOT_WAIT = 3,
STEREO_TEMPORARY_MONO = 0x00000020, STEREO_PREFER_RIGHT = 4,
RESTRICT_TO_OUTPUT = 0x00000040, STEREO_TEMPORARY_MONO = 5,
USE_DURATION = 0x00000100, RESTRICT_TO_OUTPUT = 6,
ALLOW_TEARING = 0x00000200,
USE_DURATION = 8,
ALLOW_TEARING = 9,
} }
MWA :: enum u32 { // TODO: convert to bit_set MWA :: distinct bit_set[MWA_FLAG; u32]
NO_WINDOW_CHANGES = 1 << 0, MWA_FLAG :: enum u32 {
NO_ALT_ENTER = 1 << 1, NO_WINDOW_CHANGES = 0,
NO_PRINT_SCREEN = 1 << 2, NO_ALT_ENTER = 1,
VALID = 0x7, NO_PRINT_SCREEN = 2,
}
MWA_VALID :: MWA{
.NO_WINDOW_CHANGES,
.NO_ALT_ENTER,
.NO_PRINT_SCREEN,
} }
SHARED_RESOURCE_READ :: 0x80000000 SHARED_RESOURCE_READ :: 0x80000000