# $Id$
-^typemap gl.tm
-^iomap gl.io
-^spec gl gl.spec
+!handcode glBegin
+!handcode glEnd
+!handcode glGetError
+!handcode glXGetProcAddress
+!handcode glXGetProcAddressARB
wl('%s APIENTRY %s(%s)', ret.ctype, func.name, ", ".join([p.ctype+" "+p.name for p in params]))
wl('{')
wl(' static %s (*orig)(%s);', ret.ctype, ", ".join([p.ctype for p in params]))
if ret.ctype!='void':
- wl(' %s ret;', ret.ctype)
+ wl(' %s ret;', ret.ctype)
wl(' if(!orig)')
wl(' orig = glsym("%s");', func.name)
w(' ')
wl('orig(%s);', ", ".join([p.name for p in params]))
wl(' begin_packet(FUNC_%s);', func.name.upper())
if ret.ctype!='void':
- wl(' write_%s(ret);', ret.io[0])
+ wl(' write_%s(ret);', ret.io[0].replace(' ', '_'))
for p in params:
if p.kind=="value":
- wl(' write_%s(%s);', p.io[0], p.name)
+ wl(' write_%s(%s);', p.io[0].replace(' ', '_'), p.name)
+ elif p.kind=="array" and p.io and p.io[0]=="string":
+ wl(' write_string_array(%s, %s);', p.name, p.csize)
elif p.csize:
wl(' write_data(%s, %s);', p.name, p.csize)
else:
wl(' write_pointer(%s);', p.name)
wl(' send_packet();')
+if not func.name.startswith("glX"):
+ wl(' check_error();')
if ret.ctype!='void':
wl(' return ret;')
wl('}')