summaryrefslogtreecommitdiff
path: root/src/mapi/glapi/glapi.h
diff options
context:
space:
mode:
authorChia-I Wu <olv@lunarg.com>2010-04-23 16:06:26 +0800
committerChia-I Wu <olv@lunarg.com>2010-05-07 10:41:11 +0800
commita73c6540d9a7f6e26d8568ba2fc522cb865f0a6c (patch)
treeedeb695b6ed24d3cb0016fbabadea48931de779f /src/mapi/glapi/glapi.h
parent296adbd545b8efd38c9ed508166b2de2764a444b (diff)
mapi: Add mapi and share the code with glapi.
Specifically, move all or most of glapi/glapi.c to mapi/u_current.c, glapi/glapi_execmem.c to mapi/u_execmem.c, glapi/glthread.[ch] to mapi/u_thread.[ch] and remove their dependencies on core Mesa headers.
Diffstat (limited to 'src/mapi/glapi/glapi.h')
-rw-r--r--src/mapi/glapi/glapi.h112
1 files changed, 14 insertions, 98 deletions
diff --git a/src/mapi/glapi/glapi.h b/src/mapi/glapi/glapi.h
index 7dcf2e8910..a74884d595 100644
--- a/src/mapi/glapi/glapi.h
+++ b/src/mapi/glapi/glapi.h
@@ -44,15 +44,11 @@
#ifndef _GLAPI_H
#define _GLAPI_H
-#include "glthread.h"
-
-
-struct _glapi_table;
-
-typedef void (*_glapi_proc)(void); /* generic function pointer */
-
+#ifndef MAPI_GLAPI_CURRENT
+#define MAPI_GLAPI_CURRENT
+#endif
-#if defined(USE_MGL_NAMESPACE)
+#ifdef USE_MGL_NAMESPACE
#define _glapi_set_dispatch _mglapi_set_dispatch
#define _glapi_get_dispatch _mglapi_get_dispatch
#define _glapi_set_context _mglapi_set_context
@@ -61,111 +57,31 @@ typedef void (*_glapi_proc)(void); /* generic function pointer */
#define _glapi_Context _mglapi_Context
#endif
+#include "mapi/u_current.h"
+#include "glapi/glthread.h"
-#if defined(__GNUC__)
-# define likely(x) __builtin_expect(!!(x), 1)
-# define unlikely(x) __builtin_expect(!!(x), 0)
-#else
-# define likely(x) (x)
-# define unlikely(x) (x)
-#endif
-
-
-/**
- ** Define the GET_DISPATCH() and GET_CURRENT_CONTEXT() macros.
- **
- ** \param C local variable which will hold the current context.
- **/
-#if defined (GLX_USE_TLS)
-
-extern const struct _glapi_table *_glapi_Dispatch;
-
-extern const void *_glapi_Context;
-
-extern __thread struct _glapi_table * _glapi_tls_Dispatch
- __attribute__((tls_model("initial-exec")));
-
-extern __thread void * _glapi_tls_Context
- __attribute__((tls_model("initial-exec")));
-
-# define GET_DISPATCH() _glapi_tls_Dispatch
-
-# define GET_CURRENT_CONTEXT(C) GLcontext *C = (GLcontext *) _glapi_tls_Context
-
-#else
-
-extern struct _glapi_table *_glapi_Dispatch;
-
-extern void *_glapi_Context;
-
-# ifdef THREADS
-
-# define GET_DISPATCH() \
- (likely(_glapi_Dispatch) ? _glapi_Dispatch : _glapi_get_dispatch())
-
-# define GET_CURRENT_CONTEXT(C) GLcontext *C = (GLcontext *) \
- (likely(_glapi_Context) ? _glapi_Context : _glapi_get_context())
-
-# else
-
-# define GET_DISPATCH() _glapi_Dispatch
-
-# define GET_CURRENT_CONTEXT(C) GLcontext *C = (GLcontext *) _glapi_Context
-
-# endif
-
-#endif /* defined (GLX_USE_TLS) */
-
-
-/**
- ** GL API public functions
- **/
-
-extern void
-_glapi_init_multithread(void);
-
-
-extern void
-_glapi_destroy_multithread(void);
-
-
-extern void
-_glapi_check_multithread(void);
-
-
-extern void
-_glapi_set_context(void *context);
-
-
-extern void *
-_glapi_get_context(void);
-
-
-extern void
-_glapi_set_dispatch(struct _glapi_table *dispatch);
-
-
-extern struct _glapi_table *
-_glapi_get_dispatch(void);
+typedef void (*_glapi_proc)(void);
+#define GET_DISPATCH() ((struct _glapi_table *) u_current_get())
+#define GET_CURRENT_CONTEXT(C) GLcontext *C = (GLcontext *) u_current_get_user()
-extern unsigned int
+PUBLIC unsigned int
_glapi_get_dispatch_table_size(void);
-extern int
+PUBLIC int
_glapi_add_dispatch( const char * const * function_names,
const char * parameter_signature );
-extern int
+PUBLIC int
_glapi_get_proc_offset(const char *funcName);
-extern _glapi_proc
+PUBLIC _glapi_proc
_glapi_get_proc_address(const char *funcName);
-extern const char *
+PUBLIC const char *
_glapi_get_proc_name(unsigned int offset);