#include "glprint.h"
#include "tmpalloc.h"
+#define UNUSED __attribute__((unused))
+
typedef struct sGlPrintData
{
char *buffer;
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)
{
init_print(dec);
dec->gldError = print_gldError;
+ dec->unhandled = print_unhandled;
return dec;
}
char *ptr;
unsigned i;
+ if(!data)
+ return "NULL";
+
for(cptr=fmt; (type<2 && *cptr); ++cptr)
{
if(*cptr=='%')
{
if(!data)
return "NULL";
+ else if((unsigned long)data<0x100000)
+ {
+ char *buffer = tmpalloc(20);
+ snprintf(buffer, 20, "%p", data);
+ return buffer;
+ }
else if(!size)
return "/* data */";
else
}
}
-#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 UNUSED)
+{
+ GlPrintData *gpd = (GlPrintData *)user_data;
+ gpd->buffer[0] = 0;
+}