[PATCH v2 2/4] winevulkan: Forward declare required structs for function pointer.
Liam Middlebrook
lmiddlebrook at nvidia.com
Tue Sep 22 15:52:36 CDT 2020
Signed-off-by: Liam Middlebrook <lmiddlebrook at nvidia.com>
On 9/22/20 7:31 AM, Georg Lehmann wrote:
> Signed-off-by: Georg Lehmann <dadschoorse at gmail.com>
> ---
> dlls/winevulkan/make_vulkan | 16 +++++++++++++---
> 1 file changed, 13 insertions(+), 3 deletions(-)
>
> diff --git a/dlls/winevulkan/make_vulkan b/dlls/winevulkan/make_vulkan
> index 1b39cbb831..f4d223daad 100755
> --- a/dlls/winevulkan/make_vulkan
> +++ b/dlls/winevulkan/make_vulkan
> @@ -805,11 +805,12 @@ class VkFunction(object):
>
>
> class VkFunctionPointer(object):
> - def __init__(self, _type, name, members):
> + def __init__(self, _type, name, members, forward_decls):
> self.name = name
> self.members = members
> self.type = _type
> self.required = False
> + self.forward_decls = forward_decls
>
> @staticmethod
> def from_xml(funcpointer):
> @@ -846,10 +847,19 @@ class VkFunctionPointer(object):
>
> _type = funcpointer.text
> name = funcpointer.find("name").text
> - return VkFunctionPointer(_type, name, members)
> + if "requires" in funcpointer.attrib:
> + forward_decls = funcpointer.attrib.get("requires").split(",")
> + else:
> + forward_decls = []
> + return VkFunctionPointer(_type, name, members, forward_decls)
>
> def definition(self):
> - text = "{0} {1})(\n".format(self.type, self.name)
> + text = ""
> + # forward declare required structs
> + for decl in self.forward_decls:
> + text += "typedef struct {0} {0};\n".format(decl)
> +
> + text += "{0} {1})(\n".format(self.type, self.name)
>
> first = True
> if len(self.members) > 0:
>
More information about the wine-devel
mailing list