diff options
author | Mark Lobodzinski <mark@lunarg.com> | 2016-10-26 09:29:08 -0600 |
---|---|---|
committer | Mark Lobodzinski <mark@lunarg.com> | 2016-10-26 09:29:08 -0600 |
commit | 4588e400f732afe32da372492dd4f3c854e6ef18 (patch) | |
tree | 909ba936382432137ee0c1a730e726c2d5ca65f2 | |
parent | 47705d01140c9f1492885e6efc5fa262e7e1c6a0 (diff) | |
download | vulkan-validation-layers-4588e400f732afe32da372492dd4f3c854e6ef18.tar.gz |
scripts: Fixup vulkan.py for trunkmerges in VT
VulkanTools still uses some of the removed vulkan.py functionality.
Adding back in to facilitate trunk merges.
Change-Id: I92b4793f551e5d2afa46f353984a97ee87d831f4
-rw-r--r-- | vulkan.py | 39 |
1 files changed, 39 insertions, 0 deletions
@@ -103,6 +103,36 @@ class Proto(object): name, self.c_params(need_name=need_param_names)) + def c_pretty_decl(self, name, attr=""): + """Return a named declaration in C, with vulkan.h formatting.""" + plist = [] + for param in self.params: + idx = param.ty.find("[") + if idx < 0: + idx = len(param.ty) + + pad = 44 - idx + if pad <= 0: + pad = 1 + + plist.append(" %s%s%s%s" % (param.ty[:idx], + " " * pad, param.name, param.ty[idx:])) + + return "%s%s %s%s(\n%s)" % ( + attr + "_ATTR " if attr else "", + self.ret, + attr + "_CALL " if attr else "", + name, + ",\n".join(plist)) + + def c_func(self, prefix="", attr=""): + """Return the prototype in C.""" + return self.c_decl(prefix + self.name, attr=attr, typed=False) + + def c_call(self): + """Return a call to the prototype in C.""" + return "%s(%s)" % (self.name, self.c_params(need_type=False)) + def object_in_params(self): """Return the params that are simple VK objects and are inputs.""" return [param for param in self.params if param.ty in objects] @@ -112,6 +142,15 @@ class Proto(object): return [param for param in self.params if param.dereferenced_type() in objects] + def __repr__(self): + param_strs = [] + for param in self.params: + param_strs.append(str(param)) + param_str = " [%s]" % (",\n ".join(param_strs)) + + return "Proto(\"%s\", \"%s\",\n%s)" % \ + (self.ret, self.name, param_str) + class Extension(object): def __init__(self, name, headers, objects, protos, ifdef = None): self.name = name |