]> git.tdb.fi Git - gldbg.git/blobdiff - source/glprint.funcs.t
Print the contents of arrays and references
[gldbg.git] / source / glprint.funcs.t
index 9c62ee0b2de2b2d0fd67954c60b1436c1a3240f0..db626c0539efecdb4a3530fb2b88f79625198a04 100644 (file)
@@ -13,9 +13,14 @@ for p in params:
        if not first:
                w(', ')
        if p.kind=="value":
-               w("%s", p.io[1])
-       else:
-               w("%%p")
+               w('%s', p.io[1])
+       elif p.kind=="reference":
+               if p.io:
+                       w('{%s}', p.io[1])
+               else:
+                       w('<ref:%s>', p.type)
+       elif p.kind=="array":
+               w('%%s')
        first = False
 w(')')
 if ret.ctype!="void":
@@ -23,11 +28,22 @@ if ret.ctype!="void":
 w('"')
 for p in params+[ret]:
        if p.ctype!="void":
-               if p.io and len(p.io)>=3 and p.io[2]:
-                       f = p.io[2].split(':')
-                       w(', %s(%s)', f[0], ", ".join(eval(x) for x in f[1:]))
-               else:
-                       w(', %s', p.name)
+               if p.kind=="value":
+                       if len(p.io)>=3 and p.io[2]:
+                               f = p.io[2].split(':')
+                               w(', %s(%s)', f[0], ", ".join(eval(x) for x in f[1:]))
+                       else:
+                               w(', %s', p.name)
+               elif p.kind=="reference":
+                       if p.io:
+                               w(', *%s', p.name)
+               elif p.kind=="array":
+                       if not p.csize:
+                               w(', print_data(%s, 0)', p.name)
+                       elif p.base_ctype=="GLvoid" or p.base_ctype=="void":
+                               w(', print_data(%s, %s)', p.name, p.csize)
+                       else:
+                               w(', print_array("%s", %s, sizeof(%s), %s)', p.io[1], p.name, p.base_ctype, p.csize)
 wl(');')
 wl('}')
 :static void init_print(GlDecoder *dec)