X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fglwrap.funcs.t;h=fbba906909d5e803a3037a43a8d1c85c953d232e;hb=3c32a221de1435ae7af8d96182560e8b28f1a4c0;hp=108f329d5abbee3a2f9707a531ddf73e1739605b;hpb=2e4973ec66cd8ae12d4253e3c3ad9e36a8a4bca6;p=gldbg.git diff --git a/source/glwrap.funcs.t b/source/glwrap.funcs.t index 108f329..fbba906 100644 --- a/source/glwrap.funcs.t +++ b/source/glwrap.funcs.t @@ -1,12 +1,12 @@ # $Id$ -^typemap gl.tm -^iomap gl.io -^spec gl gl.spec +!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(' ') @@ -15,15 +15,19 @@ if ret.ctype!='void': 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]) for p in params: if p.kind=="value": wl(' write_%s(%s);', p.io[0], 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('}')