X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fglprint.c;h=e90c0e3d6eb6445ce88de453e88b615b6aba14c4;hb=17fa41a4dfef75ce671bf71306929d1f5b91025a;hp=3f6db656ebb2064a620555b246d50bbaa8432b93;hpb=151c65f1157f3b55d0b794db788b557bbc50ed0c;p=gldbg.git diff --git a/source/glprint.c b/source/glprint.c index 3f6db65..e90c0e3 100644 --- a/source/glprint.c +++ b/source/glprint.c @@ -24,6 +24,7 @@ typedef struct sGlPrintData static void init_print(GlDecoder *); static void glprint_free(void *); static void print_gldError(void *, GLenum); +static void print_unhandled(void *, unsigned short); GlDecoder *glprint_new(char *buffer, unsigned bufsize) { @@ -45,6 +46,7 @@ GlDecoder *glprint_new(char *buffer, unsigned bufsize) init_print(dec); dec->gldError = print_gldError; + dec->unhandled = print_unhandled; return dec; } @@ -74,6 +76,9 @@ static const char *print_array(const char *fmt, const void *data, unsigned elem_ char *ptr; unsigned i; + if(!data) + return "NULL"; + for(cptr=fmt; (type<2 && *cptr); ++cptr) { if(*cptr=='%') @@ -126,10 +131,16 @@ static const char *print_data(const void *data, unsigned size) } } -#include "glprint.funcs" +#include "gensrc/glprint.funcs" static void print_gldError(void *user_data, GLenum code) { GlPrintData *gpd = (GlPrintData *)user_data; snprintf(gpd->buffer, gpd->bufsize, "ERROR: %s", describe_enum(code, "ErrorCode")); } + +static void print_unhandled(void *user_data, unsigned short func) +{ + GlPrintData *gpd = (GlPrintData *)user_data; + gpd->buffer[0] = 0; +}