X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fglwrap.c;fp=source%2Fglwrap.c;h=0a22c3c1ce4b6677c0bb66cdb10d559294fbe160;hb=6475e8951e1901b247f5d1d1dd9fcfc1e77e163a;hp=224a0faacbfda31f33e75691d5674875aafa2302;hpb=53c5f5f90611ce35d13f7051b26ac482d1336fc5;p=gldbg.git diff --git a/source/glwrap.c b/source/glwrap.c index 224a0fa..0a22c3c 100644 --- a/source/glwrap.c +++ b/source/glwrap.c @@ -239,6 +239,32 @@ static inline int mapsize(GLenum target) return 1; } +GLenum cur_error = GL_NO_ERROR; + +static void check_error() +{ + GLenum (*orig_glGetError)() = 0; + GLenum code; + if(!orig_glGetError) + orig_glGetError = glsym("glGetError"); + code = orig_glGetError(); + if(code!=GL_NO_ERROR) + { + begin_packet(FUNC_GLDERROR); + write_int(code); + send_packet(); + if(cur_error==GL_NO_ERROR) + cur_error = code; + } +} + +GLenum APIENTRY glGetError() +{ + GLenum ret = cur_error; + cur_error = GL_NO_ERROR; + return ret; +} + void (*glXGetProcAddress(const GLubyte *procname))(void) { void *handle = dlopen(NULL, RTLD_LAZY);