Module: wine Branch: master Commit: 9058f5e08b03ab1f2565b82711568e25fda37128 URL: https://source.winehq.org/git/wine.git/?a=commit;h=9058f5e08b03ab1f2565b8271...
Author: Liam Middlebrook lmiddlebrook@nvidia.com Date: Tue Jan 7 13:54:05 2020 -0800
winevulkan: Support functions with basic_c return types.
Needed for VK_KHR_buffer_device_address which uses uint64_t as a return type.
Signed-off-by: Liam Middlebrook lmiddlebrook@nvidia.com Signed-off-by: Piers Daniell pdaniell@nvidia.com Signed-off-by: Alexandre Julliard julliard@winehq.org
---
dlls/winevulkan/make_vulkan | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-)
diff --git a/dlls/winevulkan/make_vulkan b/dlls/winevulkan/make_vulkan index f9b1e1cf96..6c5753eda5 100755 --- a/dlls/winevulkan/make_vulkan +++ b/dlls/winevulkan/make_vulkan @@ -2845,6 +2845,7 @@ class VkRegistry(object): for t in types: type_info = {} type_info["category"] = t.attrib.get("category", None) + type_info["requires"] = t.attrib.get("requires", None)
# We parse aliases in a second pass when we know more. alias = t.attrib.get("alias") @@ -2863,13 +2864,19 @@ class VkRegistry(object): base_types.append(basetype) type_info["data"] = basetype
+ # Basic C types don't need us to define them, but we do need data for them + if type_info["requires"] == "vk_platform": + requires = type_info["requires"] + basic_c = VkBaseType(name, _type, requires=requires) + type_info["data"] = basic_c + if type_info["category"] == "bitmask": name = t.find("name").text _type = t.find("type").text
# Most bitmasks have a requires attribute used to pull in # required '*FlagBits" enum. - requires = t.attrib.get("requires") + requires = type_info["requires"] bitmask = VkBaseType(name, _type, requires=requires) bitmasks.append(bitmask) type_info["data"] = bitmask