]> git.cworth.org Git - apitrace/blobdiff - stdapi.py
Get occlusion query getters reference the corrent size function.
[apitrace] / stdapi.py
index 122b89f84821d099c2d6754169a35925161fdea0..fcbf5abf9b0af21d03c55c37fc2e2c51cc1f5cb9 100644 (file)
--- a/stdapi.py
+++ b/stdapi.py
@@ -109,11 +109,12 @@ class Pointer(Type):
 
 class Handle(Type):
 
-    def __init__(self, name, type, range=None):
+    def __init__(self, name, type, range=None, key=None):
         Type.__init__(self, type.expr, 'P' + type.id)
         self.name = name
         self.type = type
         self.range = range
+        self.key = key
 
     def visit(self, visitor, *args, **kwargs):
         return visitor.visit_handle(self, *args, **kwargs)
@@ -218,7 +219,7 @@ class Function:
 
     __id = 0
 
-    def __init__(self, type, name, args, call = '', fail = None, sideeffects=True, hidden=False):
+    def __init__(self, type, name, args, call = '', fail = None, sideeffects=True):
         self.id = Function.__id
         Function.__id += 1
 
@@ -238,7 +239,6 @@ class Function:
         self.call = call
         self.fail = fail
         self.sideeffects = sideeffects
-        self.hidden = False
 
     def prototype(self, name=None):
         if name is not None:
@@ -434,7 +434,7 @@ class Rebuilder(Visitor):
 
     def visit_handle(self, handle):
         type = self.visit(handle.type)
-        return Handle(handle.name, type, handle.range)
+        return Handle(handle.name, type, range=handle.range, key=handle.key)
 
     def visit_alias(self, alias):
         type = self.visit(alias.type)
@@ -509,7 +509,7 @@ class Collector(Visitor):
 
 class API:
 
-    def __init__(self, name):
+    def __init__(self, name = None):
         self.name = name
         self.headers = []
         self.functions = []
@@ -542,6 +542,17 @@ class API:
     def add_interfaces(self, interfaces):
         self.interfaces.extend(interfaces)
 
+    def add_api(self, api):
+        self.headers.extend(api.headers)
+        self.add_functions(api.functions)
+        self.add_interfaces(api.interfaces)
+
+    def get_function_by_name(self, name):
+        for function in self.functions:
+            if function.name == name:
+                return function
+        return None
+
 
 Bool = Literal("bool", "Bool")
 SChar = Literal("signed char", "SInt")