Only enable verbose NoOp dispatch if DEBUG is defined
authorKristian Høgsberg <krh@bitplanet.net>
Mon, 4 Jan 2010 04:24:13 +0000 (23:24 -0500)
committerKristian Høgsberg <krh@bitplanet.net>
Mon, 4 Jan 2010 04:24:13 +0000 (23:24 -0500)
By default we generate a function per GL entry point to warn if it's
called without a context set.  This is to allow the function to print
it's name in the warning.  By using a generic function that doesn't print
the function name in the non-DEBUG case, we reduce libGL size from
320008 bytes to 283144 bytes (11%).

src/mesa/glapi/glapi.c

index 37c69779cdf360bfd2cc891987bebe7f347db8c7..84e5a8270a0d240325bd047a3f6fe8502bb850fc 100644 (file)
@@ -108,6 +108,8 @@ warn(const char *func)
    return 0;
 }
 
+#ifdef DEBUG
+
 #define KEYWORD1 static
 #define KEYWORD1_ALT static
 #define KEYWORD2 GLAPIENTRY
@@ -121,11 +123,26 @@ warn(const char *func)
 #define RETURN_DISPATCH(func, args, msg)                                     \
    return warn(#func);
 
+#define TABLE_ENTRY(name) (_glapi_proc) NoOp##name
+
+#else
+
+static void
+NoOpGeneric(void)
+{
+   if ((WarnFlag || getenv("MESA_DEBUG") || getenv("LIBGL_DEBUG"))
+       && warning_func) {
+      warning_func(NULL, "GL User Error: calling GL function");
+   }
+}
+
+#define TABLE_ENTRY(name) (_glapi_proc) NoOpGeneric
+
+#endif
+
 #define DISPATCH_TABLE_NAME __glapi_noop_table
 #define UNUSED_TABLE_NAME __unused_noop_functions
 
-#define TABLE_ENTRY(name) (_glapi_proc) NoOp##name
-
 static GLint NoOpUnused(void)
 {
    return warn("extension function");