Remove screenConfigs from __DRIscreen.
[mesa.git] / src / mesa / main / dispatch.c
index 647ee481f7cd0458d1222556964d7a30efb44152..05c1c36c0d2311d919158e50f3265613cbcf9dd8 100644 (file)
@@ -1,10 +1,8 @@
-/* $Id: dispatch.c,v 1.24 2001/09/14 22:19:19 brianp Exp $ */
-
 /*
  * Mesa 3-D graphics library
- * Version:  3.5
+ * Version:  6.3
  *
- * Copyright (C) 1999-2001  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.
- * But if we're using X86-optimized dispatch (X86/glapi_x86.S) then
- * we don't use this file's code.
+/**
+ * \file dispatch.c
  *
- * Eventually this file may be replaced by automatically generated
- * code from an API spec file.
+ * This file generates all the gl* function entrypoints.  This code is not
+ * used if optimized assembly stubs are available (e.g., using x86/glapi_x86.S
+ * on IA32 or sparc/glapi_sparc.S on SPARC).
  *
- * NOTE: This file should _not_ be used when compiling Mesa for a DRI-
- * based device driver.
+ * \note
+ * This file is also used to build the client-side libGL that loads DRI-based
+ * device drivers.  At build-time it is symlinked to src/glx/x11.
  *
+ * \author Brian Paul <brian@precisioninsight.com>
  */
 
+#ifndef GLX_USE_APPLEGL
 
-#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))
+
+#if !(defined(USE_X86_ASM) || defined(USE_X86_64_ASM) || defined(USE_SPARC_ASM))
 
 #if defined(WIN32)
 #define KEYWORD1 GLAPI
 #else
-#define KEYWORD1
+#define KEYWORD1 PUBLIC
 #endif
 
 #define KEYWORD2 GLAPIENTRY
 #define NAME(func)  gl##func
 #endif
 
+#if 0  /* Use this to log GL calls to stdout (for DEBUG only!) */
+
+#define F stdout
 #define DISPATCH(FUNC, ARGS, MESSAGE)          \
-   (_glapi_Dispatch->FUNC) ARGS
+   fprintf MESSAGE;                            \
+   CALL_ ## FUNC(GET_DISPATCH(), ARGS);
 
 #define RETURN_DISPATCH(FUNC, ARGS, MESSAGE)   \
-   return (_glapi_Dispatch->FUNC) ARGS
+   fprintf MESSAGE;                            \
+   return CALL_ ## FUNC(GET_DISPATCH(), ARGS);
+
+#else
+
+#define DISPATCH(FUNC, ARGS, MESSAGE)          \
+   CALL_ ## FUNC(GET_DISPATCH(), ARGS);
+
+#define RETURN_DISPATCH(FUNC, ARGS, MESSAGE)   \
+   return CALL_ ## FUNC(GET_DISPATCH(), ARGS);
+
+#endif /* logging */
 
 
 #ifndef GLAPIENTRY
 #define GLAPIENTRY
 #endif
 
+#include "dispatch.h"
 #include "glapitemp.h"
 
-
 #endif /* USE_X86_ASM */
+
+#endif /* !GLX_USE_APPLEGL */