mirror of
https://github.com/Ed94/Odin.git
synced 2026-08-06 07:38:48 +00:00
Merge pull request #2621 from DanielGavin/vulkan-flags2
Add support for vulkan FlagBits2
This commit is contained in:
@@ -429,7 +429,93 @@ def parse_enums(f):
|
|||||||
f.write("{} :: distinct bit_set[{}; Flags]\n".format(flag.ljust(max_len), flag_name))
|
f.write("{} :: distinct bit_set[{}; Flags]\n".format(flag.ljust(max_len), flag_name))
|
||||||
f.write("{} :: enum u32 {{}}\n".format(flag_name.ljust(max_len)))
|
f.write("{} :: enum u32 {{}}\n".format(flag_name.ljust(max_len)))
|
||||||
|
|
||||||
|
def parse_fake_enums(f):
|
||||||
|
data = re.findall(r"static const Vk(\w+FlagBits2) VK_(\w+?) = (\w+);", src, re.S)
|
||||||
|
|
||||||
|
data.sort(key=lambda x: x[0])
|
||||||
|
|
||||||
|
fake_enums = {}
|
||||||
|
|
||||||
|
for type_name, name, value in data:
|
||||||
|
if type_name in fake_enums:
|
||||||
|
fake_enums[type_name].append((name,value))
|
||||||
|
else:
|
||||||
|
fake_enums[type_name] = [(name, value)]
|
||||||
|
|
||||||
|
for name in fake_enums.keys():
|
||||||
|
flags_name = name.replace("FlagBits", "Flags")
|
||||||
|
enum_name = name.replace("FlagBits", "Flag")
|
||||||
|
f.write("{} :: distinct bit_set[{}; Flags64]\n".format(flags_name, enum_name))
|
||||||
|
f.write("{} :: enum Flags64 {{\n".format(name.replace("FlagBits", "Flag")))
|
||||||
|
|
||||||
|
prefix = to_snake_case(name).upper()
|
||||||
|
suffix = None
|
||||||
|
for ext in ext_suffixes:
|
||||||
|
prefix_new = remove_suffix(prefix, "_"+ext)
|
||||||
|
assert suffix is None
|
||||||
|
if prefix_new != prefix:
|
||||||
|
suffix = "_"+ext
|
||||||
|
prefix = prefix_new
|
||||||
|
break
|
||||||
|
|
||||||
|
|
||||||
|
prefix = prefix.replace("_FLAG_BITS2", "_2")
|
||||||
|
prefix += "_"
|
||||||
|
|
||||||
|
ff = []
|
||||||
|
|
||||||
|
groups = []
|
||||||
|
flags = {}
|
||||||
|
|
||||||
|
names_and_values = fake_enums[name]
|
||||||
|
|
||||||
|
for name, value in names_and_values:
|
||||||
|
value = value.replace("ULL", "")
|
||||||
|
n = fix_enum_name(name, prefix, suffix, True)
|
||||||
|
try:
|
||||||
|
v = fix_enum_value(value, prefix, suffix, True)
|
||||||
|
except FlagError as e:
|
||||||
|
v = int(str(e))
|
||||||
|
groups.append((n, v))
|
||||||
|
continue
|
||||||
|
except IgnoreFlagError as e:
|
||||||
|
groups.append((n, 0))
|
||||||
|
continue
|
||||||
|
|
||||||
|
if n == v:
|
||||||
|
continue
|
||||||
|
try:
|
||||||
|
flags[int(v)] = n
|
||||||
|
except ValueError as e:
|
||||||
|
pass
|
||||||
|
|
||||||
|
if v == "NONE":
|
||||||
|
continue
|
||||||
|
|
||||||
|
ff.append((n, v))
|
||||||
|
|
||||||
|
max_flag_value = max([int(v) for n, v in ff if is_int(v)] + [0])
|
||||||
|
max_group_value = max([int(v) for n, v in groups if is_int(v)] + [0])
|
||||||
|
if max_flag_value < max_group_value:
|
||||||
|
if (1<<max_flag_value)+1 < max_group_value:
|
||||||
|
ff.append(('_MAX', 31))
|
||||||
|
flags[31] = '_MAX'
|
||||||
|
pass
|
||||||
|
|
||||||
|
max_len = max([len(n) for n, v in ff] + [0])
|
||||||
|
|
||||||
|
flag_names = set([n for n, v in ff])
|
||||||
|
|
||||||
|
for n, v in ff:
|
||||||
|
if not is_int(v) and v not in flag_names:
|
||||||
|
print("Ignoring", n, "=", v)
|
||||||
|
continue
|
||||||
|
f.write("\t{} = {},".format(n.ljust(max_len), v))
|
||||||
|
if n == "_MAX":
|
||||||
|
f.write(" // Needed for the *_ALL bit set")
|
||||||
|
f.write("\n")
|
||||||
|
|
||||||
|
f.write("}\n\n")
|
||||||
|
|
||||||
def parse_structs(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) Vk(\w+?) {(.+?)} \w+?;", src, re.S)
|
||||||
@@ -490,6 +576,10 @@ def parse_structs(f):
|
|||||||
continue
|
continue
|
||||||
name = name.replace("FlagBits", "Flag")
|
name = name.replace("FlagBits", "Flag")
|
||||||
_type = _type.replace("FlagBits", "Flag")
|
_type = _type.replace("FlagBits", "Flag")
|
||||||
|
|
||||||
|
if name.endswith("Flag2") or name.endswith("Flags2"):
|
||||||
|
continue
|
||||||
|
|
||||||
aliases.append((name, _type))
|
aliases.append((name, _type))
|
||||||
|
|
||||||
max_len = max([len(n) for n, _ in aliases] + [0])
|
max_len = max([len(n) for n, _ in aliases] + [0])
|
||||||
@@ -732,6 +822,7 @@ with open("../enums.odin", 'w', encoding='utf-8') as f:
|
|||||||
f.write(BASE)
|
f.write(BASE)
|
||||||
f.write("\n")
|
f.write("\n")
|
||||||
parse_enums(f)
|
parse_enums(f)
|
||||||
|
parse_fake_enums(f)
|
||||||
f.write("\n\n")
|
f.write("\n\n")
|
||||||
with open("../structs.odin", 'w', encoding='utf-8') as f:
|
with open("../structs.odin", 'w', encoding='utf-8') as f:
|
||||||
f.write(BASE)
|
f.write(BASE)
|
||||||
|
|||||||
Vendored
+218
@@ -3825,5 +3825,223 @@ WaylandSurfaceCreateFlagsKHR :: distinct bit_set[Wayland
|
|||||||
WaylandSurfaceCreateFlagKHR :: enum u32 {}
|
WaylandSurfaceCreateFlagKHR :: enum u32 {}
|
||||||
Win32SurfaceCreateFlagsKHR :: distinct bit_set[Win32SurfaceCreateFlagKHR; Flags]
|
Win32SurfaceCreateFlagsKHR :: distinct bit_set[Win32SurfaceCreateFlagKHR; Flags]
|
||||||
Win32SurfaceCreateFlagKHR :: enum u32 {}
|
Win32SurfaceCreateFlagKHR :: enum u32 {}
|
||||||
|
AccessFlags2 :: distinct bit_set[AccessFlag2; Flags64]
|
||||||
|
AccessFlag2 :: enum Flags64 {
|
||||||
|
INDIRECT_COMMAND_READ = 0,
|
||||||
|
INDIRECT_COMMAND_READ_KHR = 0,
|
||||||
|
INDEX_READ = 1,
|
||||||
|
INDEX_READ_KHR = 1,
|
||||||
|
VERTEX_ATTRIBUTE_READ = 2,
|
||||||
|
VERTEX_ATTRIBUTE_READ_KHR = 2,
|
||||||
|
UNIFORM_READ = 3,
|
||||||
|
UNIFORM_READ_KHR = 3,
|
||||||
|
INPUT_ATTACHMENT_READ = 4,
|
||||||
|
INPUT_ATTACHMENT_READ_KHR = 4,
|
||||||
|
SHADER_READ = 5,
|
||||||
|
SHADER_READ_KHR = 5,
|
||||||
|
SHADER_WRITE = 6,
|
||||||
|
SHADER_WRITE_KHR = 6,
|
||||||
|
COLOR_ATTACHMENT_READ = 7,
|
||||||
|
COLOR_ATTACHMENT_READ_KHR = 7,
|
||||||
|
COLOR_ATTACHMENT_WRITE = 8,
|
||||||
|
COLOR_ATTACHMENT_WRITE_KHR = 8,
|
||||||
|
DEPTH_STENCIL_ATTACHMENT_READ = 9,
|
||||||
|
DEPTH_STENCIL_ATTACHMENT_READ_KHR = 9,
|
||||||
|
DEPTH_STENCIL_ATTACHMENT_WRITE = 10,
|
||||||
|
DEPTH_STENCIL_ATTACHMENT_WRITE_KHR = 10,
|
||||||
|
TRANSFER_READ = 11,
|
||||||
|
TRANSFER_READ_KHR = 11,
|
||||||
|
TRANSFER_WRITE = 12,
|
||||||
|
TRANSFER_WRITE_KHR = 12,
|
||||||
|
HOST_READ = 13,
|
||||||
|
HOST_READ_KHR = 13,
|
||||||
|
HOST_WRITE = 14,
|
||||||
|
HOST_WRITE_KHR = 14,
|
||||||
|
MEMORY_READ = 15,
|
||||||
|
MEMORY_READ_KHR = 15,
|
||||||
|
MEMORY_WRITE = 16,
|
||||||
|
MEMORY_WRITE_KHR = 16,
|
||||||
|
SHADER_SAMPLED_READ = 32,
|
||||||
|
SHADER_SAMPLED_READ_KHR = 32,
|
||||||
|
SHADER_STORAGE_READ = 33,
|
||||||
|
SHADER_STORAGE_READ_KHR = 33,
|
||||||
|
SHADER_STORAGE_WRITE = 34,
|
||||||
|
SHADER_STORAGE_WRITE_KHR = 34,
|
||||||
|
VIDEO_DECODE_READ_KHR = 35,
|
||||||
|
VIDEO_DECODE_WRITE_KHR = 36,
|
||||||
|
VIDEO_ENCODE_READ_KHR = 37,
|
||||||
|
VIDEO_ENCODE_WRITE_KHR = 38,
|
||||||
|
TRANSFORM_FEEDBACK_WRITE_EXT = 25,
|
||||||
|
TRANSFORM_FEEDBACK_COUNTER_READ_EXT = 26,
|
||||||
|
TRANSFORM_FEEDBACK_COUNTER_WRITE_EXT = 27,
|
||||||
|
CONDITIONAL_RENDERING_READ_EXT = 20,
|
||||||
|
COMMAND_PREPROCESS_READ_NV = 17,
|
||||||
|
COMMAND_PREPROCESS_WRITE_NV = 18,
|
||||||
|
FRAGMENT_SHADING_RATE_ATTACHMENT_READ_KHR = 23,
|
||||||
|
SHADING_RATE_IMAGE_READ_NV = 23,
|
||||||
|
ACCELERATION_STRUCTURE_READ_KHR = 21,
|
||||||
|
ACCELERATION_STRUCTURE_WRITE_KHR = 22,
|
||||||
|
ACCELERATION_STRUCTURE_READ_NV = 21,
|
||||||
|
ACCELERATION_STRUCTURE_WRITE_NV = 22,
|
||||||
|
FRAGMENT_DENSITY_MAP_READ_EXT = 24,
|
||||||
|
COLOR_ATTACHMENT_READ_NONCOHERENT_EXT = 19,
|
||||||
|
DESCRIPTOR_BUFFER_READ_EXT = 41,
|
||||||
|
INVOCATION_MASK_READ_HUAWEI = 39,
|
||||||
|
SHADER_BINDING_TABLE_READ_KHR = 40,
|
||||||
|
MICROMAP_READ_EXT = 44,
|
||||||
|
MICROMAP_WRITE_EXT = 45,
|
||||||
|
OPTICAL_FLOW_READ_NV = 42,
|
||||||
|
OPTICAL_FLOW_WRITE_NV = 43,
|
||||||
|
}
|
||||||
|
|
||||||
|
FormatFeatureFlags2 :: distinct bit_set[FormatFeatureFlag2; Flags64]
|
||||||
|
FormatFeatureFlag2 :: enum Flags64 {
|
||||||
|
SAMPLED_IMAGE = 0,
|
||||||
|
SAMPLED_IMAGE_KHR = 0,
|
||||||
|
STORAGE_IMAGE = 1,
|
||||||
|
STORAGE_IMAGE_KHR = 1,
|
||||||
|
STORAGE_IMAGE_ATOMIC = 2,
|
||||||
|
STORAGE_IMAGE_ATOMIC_KHR = 2,
|
||||||
|
UNIFORM_TEXEL_BUFFER = 3,
|
||||||
|
UNIFORM_TEXEL_BUFFER_KHR = 3,
|
||||||
|
STORAGE_TEXEL_BUFFER = 4,
|
||||||
|
STORAGE_TEXEL_BUFFER_KHR = 4,
|
||||||
|
STORAGE_TEXEL_BUFFER_ATOMIC = 5,
|
||||||
|
STORAGE_TEXEL_BUFFER_ATOMIC_KHR = 5,
|
||||||
|
VERTEX_BUFFER = 6,
|
||||||
|
VERTEX_BUFFER_KHR = 6,
|
||||||
|
COLOR_ATTACHMENT = 7,
|
||||||
|
COLOR_ATTACHMENT_KHR = 7,
|
||||||
|
COLOR_ATTACHMENT_BLEND = 8,
|
||||||
|
COLOR_ATTACHMENT_BLEND_KHR = 8,
|
||||||
|
DEPTH_STENCIL_ATTACHMENT = 9,
|
||||||
|
DEPTH_STENCIL_ATTACHMENT_KHR = 9,
|
||||||
|
BLIT_SRC = 10,
|
||||||
|
BLIT_SRC_KHR = 10,
|
||||||
|
BLIT_DST = 11,
|
||||||
|
BLIT_DST_KHR = 11,
|
||||||
|
SAMPLED_IMAGE_FILTER_LINEAR = 12,
|
||||||
|
SAMPLED_IMAGE_FILTER_LINEAR_KHR = 12,
|
||||||
|
SAMPLED_IMAGE_FILTER_CUBIC = 13,
|
||||||
|
SAMPLED_IMAGE_FILTER_CUBIC_EXT = 13,
|
||||||
|
TRANSFER_SRC = 14,
|
||||||
|
TRANSFER_SRC_KHR = 14,
|
||||||
|
TRANSFER_DST = 15,
|
||||||
|
TRANSFER_DST_KHR = 15,
|
||||||
|
SAMPLED_IMAGE_FILTER_MINMAX = 16,
|
||||||
|
SAMPLED_IMAGE_FILTER_MINMAX_KHR = 16,
|
||||||
|
MIDPOINT_CHROMA_SAMPLES = 17,
|
||||||
|
MIDPOINT_CHROMA_SAMPLES_KHR = 17,
|
||||||
|
SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER = 18,
|
||||||
|
SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_KHR = 18,
|
||||||
|
SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER = 19,
|
||||||
|
SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_KHR = 19,
|
||||||
|
SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT = 20,
|
||||||
|
SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_KHR = 20,
|
||||||
|
SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE = 21,
|
||||||
|
SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_KHR = 21,
|
||||||
|
DISJOINT = 22,
|
||||||
|
DISJOINT_KHR = 22,
|
||||||
|
COSITED_CHROMA_SAMPLES = 23,
|
||||||
|
COSITED_CHROMA_SAMPLES_KHR = 23,
|
||||||
|
STORAGE_READ_WITHOUT_FORMAT = 31,
|
||||||
|
STORAGE_READ_WITHOUT_FORMAT_KHR = 31,
|
||||||
|
STORAGE_WRITE_WITHOUT_FORMAT = 32,
|
||||||
|
STORAGE_WRITE_WITHOUT_FORMAT_KHR = 32,
|
||||||
|
SAMPLED_IMAGE_DEPTH_COMPARISON = 33,
|
||||||
|
SAMPLED_IMAGE_DEPTH_COMPARISON_KHR = 33,
|
||||||
|
VIDEO_DECODE_OUTPUT_KHR = 25,
|
||||||
|
VIDEO_DECODE_DPB_KHR = 26,
|
||||||
|
ACCELERATION_STRUCTURE_VERTEX_BUFFER_KHR = 29,
|
||||||
|
FRAGMENT_DENSITY_MAP_EXT = 24,
|
||||||
|
FRAGMENT_SHADING_RATE_ATTACHMENT_KHR = 30,
|
||||||
|
VIDEO_ENCODE_INPUT_KHR = 27,
|
||||||
|
VIDEO_ENCODE_DPB_KHR = 28,
|
||||||
|
LINEAR_COLOR_ATTACHMENT_NV = 38,
|
||||||
|
WEIGHT_IMAGE_QCOM = 34,
|
||||||
|
WEIGHT_SAMPLED_IMAGE_QCOM = 35,
|
||||||
|
BLOCK_MATCHING_QCOM = 36,
|
||||||
|
BOX_FILTER_SAMPLED_QCOM = 37,
|
||||||
|
OPTICAL_FLOW_IMAGE_NV = 40,
|
||||||
|
OPTICAL_FLOW_VECTOR_NV = 41,
|
||||||
|
OPTICAL_FLOW_COST_NV = 42,
|
||||||
|
}
|
||||||
|
|
||||||
|
PipelineStageFlags2 :: distinct bit_set[PipelineStageFlag2; Flags64]
|
||||||
|
PipelineStageFlag2 :: enum Flags64 {
|
||||||
|
TOP_OF_PIPE = 0,
|
||||||
|
TOP_OF_PIPE_KHR = 0,
|
||||||
|
DRAW_INDIRECT = 1,
|
||||||
|
DRAW_INDIRECT_KHR = 1,
|
||||||
|
VERTEX_INPUT = 2,
|
||||||
|
VERTEX_INPUT_KHR = 2,
|
||||||
|
VERTEX_SHADER = 3,
|
||||||
|
VERTEX_SHADER_KHR = 3,
|
||||||
|
TESSELLATION_CONTROL_SHADER = 4,
|
||||||
|
TESSELLATION_CONTROL_SHADER_KHR = 4,
|
||||||
|
TESSELLATION_EVALUATION_SHADER = 5,
|
||||||
|
TESSELLATION_EVALUATION_SHADER_KHR = 5,
|
||||||
|
GEOMETRY_SHADER = 6,
|
||||||
|
GEOMETRY_SHADER_KHR = 6,
|
||||||
|
FRAGMENT_SHADER = 7,
|
||||||
|
FRAGMENT_SHADER_KHR = 7,
|
||||||
|
EARLY_FRAGMENT_TESTS = 8,
|
||||||
|
EARLY_FRAGMENT_TESTS_KHR = 8,
|
||||||
|
LATE_FRAGMENT_TESTS = 9,
|
||||||
|
LATE_FRAGMENT_TESTS_KHR = 9,
|
||||||
|
COLOR_ATTACHMENT_OUTPUT = 10,
|
||||||
|
COLOR_ATTACHMENT_OUTPUT_KHR = 10,
|
||||||
|
COMPUTE_SHADER = 11,
|
||||||
|
COMPUTE_SHADER_KHR = 11,
|
||||||
|
ALL_TRANSFER = 12,
|
||||||
|
ALL_TRANSFER_KHR = 12,
|
||||||
|
TRANSFER = 12,
|
||||||
|
TRANSFER_KHR = 12,
|
||||||
|
BOTTOM_OF_PIPE = 13,
|
||||||
|
BOTTOM_OF_PIPE_KHR = 13,
|
||||||
|
HOST = 14,
|
||||||
|
HOST_KHR = 14,
|
||||||
|
ALL_GRAPHICS = 15,
|
||||||
|
ALL_GRAPHICS_KHR = 15,
|
||||||
|
ALL_COMMANDS = 16,
|
||||||
|
ALL_COMMANDS_KHR = 16,
|
||||||
|
COPY = 32,
|
||||||
|
COPY_KHR = 32,
|
||||||
|
RESOLVE = 33,
|
||||||
|
RESOLVE_KHR = 33,
|
||||||
|
BLIT = 34,
|
||||||
|
BLIT_KHR = 34,
|
||||||
|
CLEAR = 35,
|
||||||
|
CLEAR_KHR = 35,
|
||||||
|
INDEX_INPUT = 36,
|
||||||
|
INDEX_INPUT_KHR = 36,
|
||||||
|
VERTEX_ATTRIBUTE_INPUT = 37,
|
||||||
|
VERTEX_ATTRIBUTE_INPUT_KHR = 37,
|
||||||
|
PRE_RASTERIZATION_SHADERS = 38,
|
||||||
|
PRE_RASTERIZATION_SHADERS_KHR = 38,
|
||||||
|
VIDEO_DECODE_KHR = 26,
|
||||||
|
VIDEO_ENCODE_KHR = 27,
|
||||||
|
TRANSFORM_FEEDBACK_EXT = 24,
|
||||||
|
CONDITIONAL_RENDERING_EXT = 18,
|
||||||
|
COMMAND_PREPROCESS_NV = 17,
|
||||||
|
FRAGMENT_SHADING_RATE_ATTACHMENT_KHR = 22,
|
||||||
|
SHADING_RATE_IMAGE_NV = 22,
|
||||||
|
ACCELERATION_STRUCTURE_BUILD_KHR = 25,
|
||||||
|
RAY_TRACING_SHADER_KHR = 21,
|
||||||
|
RAY_TRACING_SHADER_NV = 21,
|
||||||
|
ACCELERATION_STRUCTURE_BUILD_NV = 25,
|
||||||
|
FRAGMENT_DENSITY_PROCESS_EXT = 23,
|
||||||
|
TASK_SHADER_NV = 19,
|
||||||
|
MESH_SHADER_NV = 20,
|
||||||
|
TASK_SHADER_EXT = 19,
|
||||||
|
MESH_SHADER_EXT = 20,
|
||||||
|
SUBPASS_SHADING_HUAWEI = 39,
|
||||||
|
INVOCATION_MASK_HUAWEI = 40,
|
||||||
|
ACCELERATION_STRUCTURE_COPY_KHR = 28,
|
||||||
|
MICROMAP_BUILD_EXT = 30,
|
||||||
|
CLUSTER_CULLING_SHADER_HUAWEI = 41,
|
||||||
|
OPTICAL_FLOW_NV = 29,
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Vendored
-6
@@ -7406,12 +7406,6 @@ IOSurfaceRef :: struct {} // Opaque struct defined by Apple’s CoreGraphics fra
|
|||||||
// Aliases
|
// Aliases
|
||||||
PhysicalDeviceVariablePointerFeatures :: PhysicalDeviceVariablePointersFeatures
|
PhysicalDeviceVariablePointerFeatures :: PhysicalDeviceVariablePointersFeatures
|
||||||
PhysicalDeviceShaderDrawParameterFeatures :: PhysicalDeviceShaderDrawParametersFeatures
|
PhysicalDeviceShaderDrawParameterFeatures :: PhysicalDeviceShaderDrawParametersFeatures
|
||||||
PipelineStageFlags2 :: Flags64
|
|
||||||
PipelineStageFlag2 :: Flags64
|
|
||||||
AccessFlags2 :: Flags64
|
|
||||||
AccessFlag2 :: Flags64
|
|
||||||
FormatFeatureFlags2 :: Flags64
|
|
||||||
FormatFeatureFlag2 :: Flags64
|
|
||||||
RenderingFlagsKHR :: RenderingFlags
|
RenderingFlagsKHR :: RenderingFlags
|
||||||
RenderingFlagKHR :: RenderingFlag
|
RenderingFlagKHR :: RenderingFlag
|
||||||
RenderingInfoKHR :: RenderingInfo
|
RenderingInfoKHR :: RenderingInfo
|
||||||
|
|||||||
Reference in New Issue
Block a user