More GL_EXT_framebuffer_object: rename some things, added device driver hooks.
[mesa.git] / src / mesa / main / dispatch.c
index e5de63c0ec0e9f090b2e2ecaf884452736496ffe..946f39d1f983c26a826d5aa350be03489adac30c 100644 (file)
@@ -1,10 +1,8 @@
-/* $Id: dispatch.c,v 1.18 2001/01/02 10:07:34 joukj Exp $ */
-
 /*
  * Mesa 3-D graphics library
- * Version:  3.5
+ * Version:  6.3
  *
- * Copyright (C) 1999-2000  Brian Paul   All Rights Reserved.
+ * Copyright (C) 1999-2004  Brian Paul   All Rights Reserved.
  *
  * Permission is hereby granted, free of charge, to any person obtaining a
  * copy of this software and associated documentation files (the "Software"),
 
 
 /*
- * This file generates all the gl* function entyrpoints.
+ * This file generates all the gl* function entrypoints.
  * But if we're using X86-optimized dispatch (X86/glapi_x86.S) then
- * each of the entrypoints will be prefixed with _glapi_fallback_*
- * and will be called by the glapi_x86.S code when we're in thread-
- * safe mode.
- *
- * Eventually this file may be replaced by automatically generated
- * code from an API spec file.
+ * we don't use this code.
  *
  * NOTE: This file should _not_ be used when compiling Mesa for a DRI-
  * based device driver.
  */
 
 
-
-#ifdef PC_HEADER
-#include "all.h"
-#else
 #include "glheader.h"
 #include "glapi.h"
 #include "glapitable.h"
 #include "glthread.h"
-#endif
 
 
+#if !(defined(USE_X86_ASM) || defined(USE_SPARC_ASM))
 
-#define KEYWORD1
-#define KEYWORD2 GLAPIENTRY
-#if defined(USE_X86_ASM) && !defined(__WIN32__) && !defined(XF86DRI)
-#define NAME(func) _glapi_fallback_##func
-#elif defined(USE_MGL_NAMESPACE)
-#define NAME(func)  mgl##func
+#if defined(WIN32)
+#define KEYWORD1 GLAPI
 #else
-#define NAME(func)  gl##func
-#endif
-
-#ifdef DEBUG
-
-#if 0
-static int
-trace(void)
-{
-   static int trace = -1;
-   if (trace < 0)
-      trace = getenv("MESA_TRACE") ? 1 : 0;
-   return trace > 0;
-}
+#define KEYWORD1 PUBLIC
 #endif
 
-#define F stderr
-
-#define DISPATCH(FUNC, ARGS, MESSAGE)                                  \
-   const struct _glapi_table *dispatch;                                        \
-   dispatch = _glapi_Dispatch ? _glapi_Dispatch : _glapi_get_dispatch();\
-   (dispatch->FUNC) ARGS
-
-#define RETURN_DISPATCH(FUNC, ARGS, MESSAGE)                           \
-   const struct _glapi_table *dispatch;                                        \
-   dispatch = _glapi_Dispatch ? _glapi_Dispatch : _glapi_get_dispatch();\
-   return (dispatch->FUNC) ARGS
-
-#if 0
-   /* From both macros above... */
-   if (trace()) {                                                      \
-      fprintf MESSAGE;                                                 \
-      fprintf(F, "\n");                                                        \
-   }
-#endif
+#define KEYWORD2 GLAPIENTRY
 
+#if defined(USE_MGL_NAMESPACE)
+#define NAME(func)  mgl##func
 #else
+#define NAME(func)  gl##func
+#endif
 
-#ifdef THREADS
+#if 0  /* Use this to log GL calls to stdout (for DEBUG only!) */
 
-#define DISPATCH(FUNC, ARGS, MESSAGE)                                  \
-   const struct _glapi_table *dispatch;                                        \
-   dispatch = _glapi_Dispatch ? _glapi_Dispatch : _glapi_get_dispatch();\
-   (dispatch->FUNC) ARGS
+#define F stdout
+#define DISPATCH(FUNC, ARGS, MESSAGE)          \
+   fprintf MESSAGE;                            \
+   GL_CALL(FUNC) ARGS;
 
-#define RETURN_DISPATCH(FUNC, ARGS, MESSAGE)                           \
-   const struct _glapi_table *dispatch;                                        \
-   dispatch = _glapi_Dispatch ? _glapi_Dispatch : _glapi_get_dispatch();\
-   return (dispatch->FUNC) ARGS
+#define RETURN_DISPATCH(FUNC, ARGS, MESSAGE)   \
+   fprintf MESSAGE;                            \
+   return GL_CALL(FUNC) ARGS;
 
 #else
 
+#define DISPATCH(FUNC, ARGS, MESSAGE)          \
+   GL_CALL(FUNC) ARGS;
 
-#define DISPATCH(FUNC, ARGS, MESSAGE) \
-__asm__  ("jmp    *(%%eax) ;" : : "a" (&(_glapi_Dispatch->FUNC)) )
+#define RETURN_DISPATCH(FUNC, ARGS, MESSAGE)   \
+   return GL_CALL(FUNC) ARGS;
 
-#define RETURN_DISPATCH(FUNC, ARGS, MESSAGE)                           \
-   const struct _glapi_table *dispatch;                                        \
-   dispatch = _glapi_Dispatch;\
-   return (dispatch->FUNC) ARGS
-
-#endif
-
-#endif
+#endif /* logging */
 
 
 #ifndef GLAPIENTRY
 #define GLAPIENTRY
 #endif
 
-#define DO_GEOMETRY
 #include "glapitemp.h"
 
+
+#endif /* USE_X86_ASM */