-/* $Id: dispatch.c,v 1.14 2000/02/02 19:18:19 brianp Exp $ */
/*
* Mesa 3-D graphics library
- * Version: 3.3
+ * Version: 4.1
*
- * Copyright (C) 1999-2000 Brian Paul All Rights Reserved.
+ * Copyright (C) 1999-2001 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"),
*/
-#ifdef PC_HEADER
-#include "all.h"
-#else
+/*
+ * This file generates all the gl* function entyrpoints.
+ * But if we're using X86-optimized dispatch (X86/glapi_x86.S) then
+ * we don't use this code.
+ *
+ * NOTE: This file should _not_ be used when compiling Mesa for a DRI-
+ * based device driver.
+ *
+ */
+
+
#include "glheader.h"
#include "glapi.h"
#include "glapitable.h"
-#endif
+#include "glthread.h"
+#if !(defined(USE_X86_ASM) || defined(USE_SPARC_ASM))
+#if defined(WIN32)
+#define KEYWORD1 GLAPI
+#else
#define KEYWORD1
+#endif
+
#define KEYWORD2 GLAPIENTRY
-#if defined(USE_X86_ASM) && !defined(__WIN32__) && !defined(XF86DRI)
-#define NAME(func) _glapi_fallback_##func
-#elif defined(USE_MGL_NAMESPACE)
+
+#if defined(USE_MGL_NAMESPACE)
#define NAME(func) mgl##func
#else
#define NAME(func) gl##func
#endif
-#ifdef DEBUG
-
-static int
-trace(void)
-{
- static int trace = -1;
- if (trace < 0)
- trace = getenv("MESA_TRACE") ? 1 : 0;
- return trace > 0;
-}
-
-#define F stderr
-
-#define DISPATCH(FUNC, ARGS, MESSAGE) \
- const struct _glapi_table *dispatch; \
- dispatch = _glapi_Dispatch ? _glapi_Dispatch : _glapi_get_dispatch();\
- if (trace()) { \
- fprintf MESSAGE; \
- fprintf(F, "\n"); \
- } \
- (dispatch->FUNC) ARGS
-
-#define RETURN_DISPATCH(FUNC, ARGS, MESSAGE) \
- const struct _glapi_table *dispatch; \
- dispatch = _glapi_Dispatch ? _glapi_Dispatch : _glapi_get_dispatch();\
- if (trace()) { \
- fprintf MESSAGE; \
- fprintf(F, "\n"); \
- } \
- return (dispatch->FUNC) ARGS
+
+#if 0 /* Use this to log GL calls to stdout (for DEBUG only!) */
+
+#define F stdout
+#define DISPATCH(FUNC, ARGS, MESSAGE) \
+ fprintf MESSAGE; \
+ (_glapi_Dispatch->FUNC) ARGS;
+
+#define RETURN_DISPATCH(FUNC, ARGS, MESSAGE) \
+ fprintf MESSAGE; \
+ return (_glapi_Dispatch->FUNC) ARGS
#else
-#define DISPATCH(FUNC, ARGS, MESSAGE) \
- const struct _glapi_table *dispatch; \
- dispatch = _glapi_Dispatch ? _glapi_Dispatch : _glapi_get_dispatch();\
- (dispatch->FUNC) ARGS
+#define DISPATCH(FUNC, ARGS, MESSAGE) \
+ (_glapi_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
+#define RETURN_DISPATCH(FUNC, ARGS, MESSAGE) \
+ return (_glapi_Dispatch->FUNC) ARGS
-#endif
+#endif /* logging */
#ifndef GLAPIENTRY
#include "glapitemp.h"
+
+#endif /* USE_X86_ASM */