Merge pull request #6565 from taylormck/update-vulkan-version-macros

feat(vulkan): add version macros
This commit is contained in:
gingerBill
2026-04-17 10:18:20 +01:00
committed by GitHub
2 changed files with 60 additions and 2 deletions

View File

@@ -899,6 +899,7 @@ load_proc_addresses :: proc{
with open("../core.odin", 'w', encoding='utf-8') as f:
f.write(BASE)
f.write(PACKAGE_LINE)
f.write("\n")
f.write("""
// Core API
API_VERSION_1_0 :: (1<<22) | (0<<12) | (0)
@@ -907,10 +908,38 @@ API_VERSION_1_2 :: (1<<22) | (2<<12) | (0)
API_VERSION_1_3 :: (1<<22) | (3<<12) | (0)
API_VERSION_1_4 :: (1<<22) | (4<<12) | (0)
MAKE_API_VERSION :: proc "contextless" (variant, major, minor, patch: u32) -> u32 {
\treturn (variant<<29) | (major<<22) | (minor<<12) | (patch)
}
MAKE_VERSION :: proc "contextless" (major, minor, patch: u32) -> u32 {
\treturn (major<<22) | (minor<<12) | (patch)
}
API_VERSION_MAJOR :: proc "contextless" (version: u32) -> u32 {
\treturn (version>>22) & 0x7F
}
VERSION_MAJOR :: proc "contextless" (version: u32) -> u32 {
\treturn (version>>22)
}
API_VERSION_MINOR :: proc "contextless" (version: u32) -> u32 {
\treturn (version>>12) & 0x3FF
}
VERSION_MINOR :: API_VERSION_MINOR
API_VERSION_PATCH :: proc "contextless" (version: u32) -> u32 {
\treturn (version & 0xFFF)
}
VERSION_PATCH :: API_VERSION_PATCH
API_VERSION_VARIANT :: proc "contextless" (version: u32) -> u32 {
\treturn (version>>29)
}
// Base types
Flags :: distinct u32
Flags64 :: distinct u64
@@ -973,12 +1002,13 @@ MAKE_VIDEO_STD_VERSION :: MAKE_VERSION
parse_flags_def(f)
with open("../enums.odin", 'w', encoding='utf-8') as f:
f.write(PACKAGE_LINE)
f.write("\n")
f.write("\n\n")
parse_enums(f)
parse_fake_enums(f)
f.write("\n\n")
with open("../structs.odin", 'w', encoding='utf-8') as f:
f.write(PACKAGE_LINE)
f.write("\n")
f.write("""
import "core:c"
@@ -1040,7 +1070,7 @@ MTLCommandQueue_id :: rawptr
f.write("\n\n")
with open("../procedures.odin", 'w', encoding='utf-8') as f:
f.write(PACKAGE_LINE)
f.write("\n")
f.write("\n\n")
parse_procedures(f)
f.write("\n")
group_functions(f)

View File

@@ -7,10 +7,38 @@ API_VERSION_1_2 :: (1<<22) | (2<<12) | (0)
API_VERSION_1_3 :: (1<<22) | (3<<12) | (0)
API_VERSION_1_4 :: (1<<22) | (4<<12) | (0)
MAKE_API_VERSION :: proc "contextless" (variant, major, minor, patch: u32) -> u32 {
return (variant<<29) | (major<<22) | (minor<<12) | (patch)
}
MAKE_VERSION :: proc "contextless" (major, minor, patch: u32) -> u32 {
return (major<<22) | (minor<<12) | (patch)
}
API_VERSION_MAJOR :: proc "contextless" (version: u32) -> u32 {
return (version>>22) & 0x7F
}
VERSION_MAJOR :: proc "contextless" (version: u32) -> u32 {
return (version>>22)
}
API_VERSION_MINOR :: proc "contextless" (version: u32) -> u32 {
return (version>>12) & 0x3FF
}
VERSION_MINOR :: API_VERSION_MINOR
API_VERSION_PATCH :: proc "contextless" (version: u32) -> u32 {
return (version & 0xFFF)
}
VERSION_PATCH :: API_VERSION_PATCH
API_VERSION_VARIANT :: proc "contextless" (version: u32) -> u32 {
return (version>>29)
}
// Base types
Flags :: distinct u32
Flags64 :: distinct u64