summaryrefslogtreecommitdiff
path: root/src/mesa/glapi
diff options
context:
space:
mode:
authorBrian Paul <brian.paul@tungstengraphics.com>2002-06-29 19:48:15 +0000
committerBrian Paul <brian.paul@tungstengraphics.com>2002-06-29 19:48:15 +0000
commit4e9676fb13f60ecdbc247b120031f18cd3febcb0 (patch)
tree9f310d4b547592b025b5a7063aaf2b629bef6676 /src/mesa/glapi
parentf1ad551604122dd2679dbd31ae6b2fa1197e9848 (diff)
Applied Matt Sealey's patch to remove/isolate all stdio.h function calls.
Instead of mstdio.[ch], use imports.[ch] to isolate these functions.
Diffstat (limited to 'src/mesa/glapi')
-rw-r--r--src/mesa/glapi/glapi.c52
-rw-r--r--src/mesa/glapi/glapi.h6
2 files changed, 39 insertions, 19 deletions
diff --git a/src/mesa/glapi/glapi.c b/src/mesa/glapi/glapi.c
index d50a37bd9f..78f0553427 100644
--- a/src/mesa/glapi/glapi.c
+++ b/src/mesa/glapi/glapi.c
@@ -1,4 +1,4 @@
-/* $Id: glapi.c,v 1.62 2002/05/29 15:23:16 brianp Exp $ */
+/* $Id: glapi.c,v 1.63 2002/06/29 19:48:16 brianp Exp $ */
/*
* Mesa 3-D graphics library
@@ -37,11 +37,12 @@
* flexible enough to be reused in several places: XFree86, DRI-
* based libGL.so, and perhaps the SGI SI.
*
- * There are no dependencies on Mesa in this code.
+ * NOTE: There are no dependencies on Mesa in this code.
*
* Versions (API changes):
* 2000/02/23 - original version for Mesa 3.3 and XFree86 4.0
* 2001/01/16 - added dispatch override feature for Mesa 3.5
+ * 2002/06/28 - added _glapi_set_warning_func(), Mesa 4.1.
*/
@@ -55,20 +56,37 @@
/***** BEGIN NO-OP DISPATCH *****/
static GLboolean WarnFlag = GL_FALSE;
+static _glapi_warning_func warning_func;
+
+/*
+ * Enable/disable printing of warning messages.
+ */
void
_glapi_noop_enable_warnings(GLboolean enable)
{
WarnFlag = enable;
}
+/*
+ * Register a callback function for reporting errors.
+ */
+void
+_glapi_set_warning_func( _glapi_warning_func func )
+{
+ warning_func = func;
+}
+
static GLboolean
warn(void)
{
- if (WarnFlag || getenv("MESA_DEBUG") || getenv("LIBGL_DEBUG"))
+ if ((WarnFlag || getenv("MESA_DEBUG") || getenv("LIBGL_DEBUG"))
+ && warning_func) {
return GL_TRUE;
- else
+ }
+ else {
return GL_FALSE;
+ }
}
@@ -76,21 +94,19 @@ warn(void)
#define KEYWORD2
#define NAME(func) NoOp##func
-#define F stderr
+#define F NULL
-#define DISPATCH(func, args, msg) \
- if (warn()) { \
- fprintf(stderr, "GL User Error: calling "); \
- fprintf msg; \
- fprintf(stderr, " without a current context\n"); \
+#define DISPATCH(func, args, msg) \
+ if (warn()) { \
+ warning_func(NULL, "GL User Error: called without context:"); \
+ warning_func msg; \
}
-#define RETURN_DISPATCH(func, args, msg) \
- if (warn()) { \
- fprintf(stderr, "GL User Error: calling "); \
- fprintf msg; \
- fprintf(stderr, " without a current context\n"); \
- } \
+#define RETURN_DISPATCH(func, args, msg) \
+ if (warn()) { \
+ warning_func(NULL, "GL User Error: called without context:"); \
+ warning_func msg; \
+ } \
return 0
#define DISPATCH_TABLE_NAME __glapi_noop_table
@@ -101,7 +117,7 @@ warn(void)
static int NoOpUnused(void)
{
if (warn()) {
- fprintf(stderr, "GL User Error: calling extension function without a current context\n");
+ warning_func(NULL, "GL User Error: calling extension function without a current context\n");
}
return 0;
}
@@ -442,7 +458,7 @@ _glapi_get_dispatch_table_size(void)
const char *
_glapi_get_version(void)
{
- return "20010116"; /* YYYYMMDD */
+ return "20020628"; /* YYYYMMDD */
}
diff --git a/src/mesa/glapi/glapi.h b/src/mesa/glapi/glapi.h
index 3b022e436e..be62118b57 100644
--- a/src/mesa/glapi/glapi.h
+++ b/src/mesa/glapi/glapi.h
@@ -1,4 +1,4 @@
-/* $Id: glapi.h,v 1.19 2001/03/28 17:20:20 brianp Exp $ */
+/* $Id: glapi.h,v 1.20 2002/06/29 19:48:16 brianp Exp $ */
/*
* Mesa 3-D graphics library
@@ -33,6 +33,8 @@
struct _glapi_table;
+typedef void (*_glapi_warning_func)(void *ctx, const char *str, ...);
+
extern void *_glapi_Context;
@@ -42,6 +44,8 @@ extern struct _glapi_table *_glapi_Dispatch;
extern void
_glapi_noop_enable_warnings(GLboolean enable);
+extern void
+_glapi_set_warning_func(_glapi_warning_func func);
extern void
_glapi_check_multithread(void);