From da71d390d4fbd9ce9de2a7dce244d44b7fc5e6bc Mon Sep 17 00:00:00 2001 From: Liam Middlebrook Date: Fri, 20 Mar 2020 19:39:29 -0700 Subject: [PATCH] winevulkan: Generate typedefs for aliased enums. Signed-off-by: Liam Middlebrook Signed-off-by: Piers Daniell Signed-off-by: Alexandre Julliard --- dlls/winevulkan/make_vulkan | 19 +++++++++++++++++-- include/wine/vulkan.h | 16 ++++++++++++++++ 2 files changed, 33 insertions(+), 2 deletions(-) diff --git a/dlls/winevulkan/make_vulkan b/dlls/winevulkan/make_vulkan index 35934100414..443b15b0987 100755 --- a/dlls/winevulkan/make_vulkan +++ b/dlls/winevulkan/make_vulkan @@ -335,11 +335,15 @@ class VkEnum(object): self.values = values self.required = False self.alias = alias + self.aliased_by = [] @staticmethod def from_alias(enum, alias): name = enum.attrib.get("name") - return VkEnum(name, alias.values, alias=alias) + aliasee = VkEnum(name, alias.values, alias=alias) + + alias.add_aliased_by(aliasee) + return aliasee @staticmethod def from_xml(enum): @@ -386,18 +390,29 @@ class VkEnum(object): self.values.append(value) def definition(self): + if self.is_alias(): + return "" + text = "typedef enum {0}\n{{\n".format(self.name) # Print values sorted, values can have been added in a random order. values = sorted(self.values, key=lambda value: value.value) for value in values: text += " {0},\n".format(value.definition()) - text += "}} {0};\n\n".format(self.name) + text += "}} {0};\n".format(self.name) + + for aliasee in self.aliased_by: + text += "typedef {0} {1};\n".format(self.name, aliasee.name) + + text += "\n" return text def is_alias(self): return bool(self.alias) + def add_aliased_by(self, aliasee): + self.aliased_by.append(aliasee) + class VkEnumValue(object): def __init__(self, name, value, hex=False): diff --git a/include/wine/vulkan.h b/include/wine/vulkan.h index fe804fd23e0..fddb64fc9a1 100644 --- a/include/wine/vulkan.h +++ b/include/wine/vulkan.h @@ -777,6 +777,7 @@ typedef enum VkChromaLocation VK_CHROMA_LOCATION_MIDPOINT = 1, VK_CHROMA_LOCATION_MAX_ENUM = 0x7fffffff, } VkChromaLocation; +typedef VkChromaLocation VkChromaLocationKHR; typedef enum VkCoarseSampleOrderTypeNV { @@ -994,6 +995,7 @@ typedef enum VkDescriptorUpdateTemplateType VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR = 1, VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_MAX_ENUM = 0x7fffffff, } VkDescriptorUpdateTemplateType; +typedef VkDescriptorUpdateTemplateType VkDescriptorUpdateTemplateTypeKHR; typedef enum VkDeviceGroupPresentModeFlagBitsKHR { @@ -1061,6 +1063,7 @@ typedef enum VkExternalFenceFeatureFlagBits VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT = 0x00000002, VK_EXTERNAL_FENCE_FEATURE_FLAG_BITS_MAX_ENUM = 0x7fffffff, } VkExternalFenceFeatureFlagBits; +typedef VkExternalFenceFeatureFlagBits VkExternalFenceFeatureFlagBitsKHR; typedef enum VkExternalFenceHandleTypeFlagBits { @@ -1070,6 +1073,7 @@ typedef enum VkExternalFenceHandleTypeFlagBits VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT = 0x00000008, VK_EXTERNAL_FENCE_HANDLE_TYPE_FLAG_BITS_MAX_ENUM = 0x7fffffff, } VkExternalFenceHandleTypeFlagBits; +typedef VkExternalFenceHandleTypeFlagBits VkExternalFenceHandleTypeFlagBitsKHR; typedef enum VkExternalMemoryFeatureFlagBits { @@ -1078,6 +1082,7 @@ typedef enum VkExternalMemoryFeatureFlagBits VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT = 0x00000004, VK_EXTERNAL_MEMORY_FEATURE_FLAG_BITS_MAX_ENUM = 0x7fffffff, } VkExternalMemoryFeatureFlagBits; +typedef VkExternalMemoryFeatureFlagBits VkExternalMemoryFeatureFlagBitsKHR; typedef enum VkExternalMemoryHandleTypeFlagBits { @@ -1092,6 +1097,7 @@ typedef enum VkExternalMemoryHandleTypeFlagBits VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_MAPPED_FOREIGN_MEMORY_BIT_EXT = 0x00000100, VK_EXTERNAL_MEMORY_HANDLE_TYPE_FLAG_BITS_MAX_ENUM = 0x7fffffff, } VkExternalMemoryHandleTypeFlagBits; +typedef VkExternalMemoryHandleTypeFlagBits VkExternalMemoryHandleTypeFlagBitsKHR; typedef enum VkExternalSemaphoreFeatureFlagBits { @@ -1099,6 +1105,7 @@ typedef enum VkExternalSemaphoreFeatureFlagBits VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT = 0x00000002, VK_EXTERNAL_SEMAPHORE_FEATURE_FLAG_BITS_MAX_ENUM = 0x7fffffff, } VkExternalSemaphoreFeatureFlagBits; +typedef VkExternalSemaphoreFeatureFlagBits VkExternalSemaphoreFeatureFlagBitsKHR; typedef enum VkExternalSemaphoreHandleTypeFlagBits { @@ -1109,6 +1116,7 @@ typedef enum VkExternalSemaphoreHandleTypeFlagBits VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT = 0x00000010, VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_FLAG_BITS_MAX_ENUM = 0x7fffffff, } VkExternalSemaphoreHandleTypeFlagBits; +typedef VkExternalSemaphoreHandleTypeFlagBits VkExternalSemaphoreHandleTypeFlagBitsKHR; typedef enum VkFenceCreateFlagBits { @@ -1121,6 +1129,7 @@ typedef enum VkFenceImportFlagBits VK_FENCE_IMPORT_TEMPORARY_BIT = 0x00000001, VK_FENCE_IMPORT_FLAG_BITS_MAX_ENUM = 0x7fffffff, } VkFenceImportFlagBits; +typedef VkFenceImportFlagBits VkFenceImportFlagBitsKHR; typedef enum VkFilter { @@ -1597,6 +1606,7 @@ typedef enum VkMemoryAllocateFlagBits VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR = 0x00000004, VK_MEMORY_ALLOCATE_FLAG_BITS_MAX_ENUM = 0x7fffffff, } VkMemoryAllocateFlagBits; +typedef VkMemoryAllocateFlagBits VkMemoryAllocateFlagBitsKHR; typedef enum VkMemoryHeapFlagBits { @@ -1672,6 +1682,7 @@ typedef enum VkPeerMemoryFeatureFlagBits VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT = 0x00000008, VK_PEER_MEMORY_FEATURE_FLAG_BITS_MAX_ENUM = 0x7fffffff, } VkPeerMemoryFeatureFlagBits; +typedef VkPeerMemoryFeatureFlagBits VkPeerMemoryFeatureFlagBitsKHR; typedef enum VkPerformanceConfigurationTypeINTEL { @@ -1839,6 +1850,7 @@ typedef enum VkPointClippingBehavior VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY = 1, VK_POINT_CLIPPING_BEHAVIOR_MAX_ENUM = 0x7fffffff, } VkPointClippingBehavior; +typedef VkPointClippingBehavior VkPointClippingBehaviorKHR; typedef enum VkPolygonMode { @@ -2058,6 +2070,7 @@ typedef enum VkSamplerYcbcrModelConversion VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020 = 4, VK_SAMPLER_YCBCR_MODEL_CONVERSION_MAX_ENUM = 0x7fffffff, } VkSamplerYcbcrModelConversion; +typedef VkSamplerYcbcrModelConversion VkSamplerYcbcrModelConversionKHR; typedef enum VkSamplerYcbcrRange { @@ -2065,6 +2078,7 @@ typedef enum VkSamplerYcbcrRange VK_SAMPLER_YCBCR_RANGE_ITU_NARROW = 1, VK_SAMPLER_YCBCR_RANGE_MAX_ENUM = 0x7fffffff, } VkSamplerYcbcrRange; +typedef VkSamplerYcbcrRange VkSamplerYcbcrRangeKHR; typedef enum VkScopeNV { @@ -2080,6 +2094,7 @@ typedef enum VkSemaphoreImportFlagBits VK_SEMAPHORE_IMPORT_TEMPORARY_BIT = 0x00000001, VK_SEMAPHORE_IMPORT_FLAG_BITS_MAX_ENUM = 0x7fffffff, } VkSemaphoreImportFlagBits; +typedef VkSemaphoreImportFlagBits VkSemaphoreImportFlagBitsKHR; typedef enum VkSemaphoreTypeKHR { @@ -2573,6 +2588,7 @@ typedef enum VkTessellationDomainOrigin VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT = 1, VK_TESSELLATION_DOMAIN_ORIGIN_MAX_ENUM = 0x7fffffff, } VkTessellationDomainOrigin; +typedef VkTessellationDomainOrigin VkTessellationDomainOriginKHR; typedef enum VkToolPurposeFlagBitsEXT {