aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMark Lobodzinski <mark@lunarg.com>2016-10-26 09:29:08 -0600
committerMark Lobodzinski <mark@lunarg.com>2016-10-26 09:29:08 -0600
commit4588e400f732afe32da372492dd4f3c854e6ef18 (patch)
tree909ba936382432137ee0c1a730e726c2d5ca65f2
parent47705d01140c9f1492885e6efc5fa262e7e1c6a0 (diff)
downloadvulkan-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.py39
1 files changed, 39 insertions, 0 deletions
diff --git a/vulkan.py b/vulkan.py
index 103a1b151..752a646c8 100644
--- a/vulkan.py
+++ b/vulkan.py
@@ -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