[PATCH 2/4] winevulkan: Forward declare required structs for function pointer.
Georg Lehmann
dadschoorse at gmail.com
Tue Sep 22 09:08:17 CDT 2020
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..e6f510f287 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:
--
2.28.0
More information about the wine-devel
mailing list