aboutsummaryrefslogtreecommitdiff
path: root/vendor/vulkan
diff options
context:
space:
mode:
authorNoahR02 <noahreppert95@protonmail.com>2023-05-20 18:28:39 -0400
committerNoahR02 <noahreppert95@protonmail.com>2023-05-20 18:28:39 -0400
commit66461c9dbc2baae8d4ed4f8585713f8649cee2d2 (patch)
tree67a40527e0a6caf161f070363fd0862463d6d0e1 /vendor/vulkan
parentd77103e53e79bd5df7a24bec5b4c72cdc2fcf9d4 (diff)
Parse Vulkan Video headers
Diffstat (limited to 'vendor/vulkan')
-rw-r--r--vendor/vulkan/_gen/create_vulkan_odin_wrapper.py12
1 files changed, 12 insertions, 0 deletions
diff --git a/vendor/vulkan/_gen/create_vulkan_odin_wrapper.py b/vendor/vulkan/_gen/create_vulkan_odin_wrapper.py
index dbd87c498..e90c32659 100644
--- a/vendor/vulkan/_gen/create_vulkan_odin_wrapper.py
+++ b/vendor/vulkan/_gen/create_vulkan_odin_wrapper.py
@@ -16,6 +16,11 @@ file_and_urls = [
("vulkan_macos.h", 'https://raw.githubusercontent.com/KhronosGroup/Vulkan-Headers/main/include/vulkan/vulkan_macos.h', False),
("vulkan_ios.h", 'https://raw.githubusercontent.com/KhronosGroup/Vulkan-Headers/main/include/vulkan/vulkan_ios.h', False),
("vulkan_wayland.h", 'https://raw.githubusercontent.com/KhronosGroup/Vulkan-Headers/main/include/vulkan/vulkan_wayland.h', False),
+ # Vulkan Video
+ ("vulkan_video_codec_h264std.h", 'https://raw.githubusercontent.com/KhronosGroup/Vulkan-Headers/main/include/vk_video/vulkan_video_codec_h264std.h', False),
+ ("vulkan_video_codec_h265std.h", 'https://raw.githubusercontent.com/KhronosGroup/Vulkan-Headers/main/include/vk_video/vulkan_video_codec_h265std.h', False),
+ ("vulkan_video_codec_h264std_decode.h", 'https://raw.githubusercontent.com/KhronosGroup/Vulkan-Headers/main/include/vk_video/vulkan_video_codec_h264std_decode.h', False),
+ ("vulkan_video_codec_h265std_decode.h", 'https://raw.githubusercontent.com/KhronosGroup/Vulkan-Headers/main/include/vk_video/vulkan_video_codec_h265std_decode.h', False),
]
for file, url, _ in file_and_urls:
@@ -37,6 +42,9 @@ def no_vk(t):
t = t.replace('PFN_', 'Proc')
t = t.replace('PFN_', 'Proc')
t = t.replace('VK_', '')
+ # Vulkan Video
+ t = t.replace('STD_', '')
+ t = t.replace('Std', '')
return t
OPAQUE_STRUCTS = """
@@ -267,6 +275,8 @@ def parse_constants(f):
inner = r"((?:(?:" + fixes + r")\w+)|(?:\w+" + fixes + r"))"
pattern = r"#define\s+VK_" + inner + r"\s*(.*?)\n"
data = re.findall(pattern, src, re.S)
+ vulkan_video_find_pattern = r"#define\s+STD_" + inner + r"\s*(.*?)\n"
+ data += re.findall(vulkan_video_find_pattern, src, re.S)
number_suffix_re = re.compile(r"(\d+)[UuLlFf]")
@@ -285,6 +295,7 @@ def parse_enums(f):
f.write("// Enums\n")
data = re.findall(r"typedef enum Vk(\w+) {(.+?)} \w+;", src, re.S)
+ data += re.findall(r"typedef enum Std(\w+) {(.+?)} \w+;", src, re.S)
data.sort(key=lambda x: x[0])
@@ -407,6 +418,7 @@ def parse_enums(f):
def parse_structs(f):
data = re.findall(r"typedef (struct|union) Vk(\w+?) {(.+?)} \w+?;", src, re.S)
+ data += re.findall(r"typedef (struct|union) Std(\w+?) {(.+?)} \w+?;", src, re.S)
for _type, name, fields in data:
fields = re.findall(r"\s+(.+?)\s+([_a-zA-Z0-9[\]]+);", fields)