mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-07 02:48:06 +02:00
glapi: Move public function/variable declarations to glapi.h.
glapi defines an interface that is used by DRI drivers. It must not be changed in an ABI incompatible way. This commit moves all functions/variables belong to the interface to glapi.h. Instead of including u_current.h from glapi.h, u_current.h now includes glapi.h.
This commit is contained in:
parent
0eac4b8740
commit
760451baae
5 changed files with 107 additions and 47 deletions
|
|
@ -44,10 +44,11 @@
|
|||
#ifndef _GLAPI_H
|
||||
#define _GLAPI_H
|
||||
|
||||
#ifndef MAPI_GLAPI_CURRENT
|
||||
#define MAPI_GLAPI_CURRENT
|
||||
#endif
|
||||
|
||||
#define _GLAPI_EXPORT PUBLIC
|
||||
|
||||
|
||||
/* Is this needed? It is incomplete anyway. */
|
||||
#ifdef USE_MGL_NAMESPACE
|
||||
#define _glapi_set_dispatch _mglapi_set_dispatch
|
||||
#define _glapi_get_dispatch _mglapi_get_dispatch
|
||||
|
|
@ -57,32 +58,106 @@
|
|||
#define _glapi_Context _mglapi_Context
|
||||
#endif
|
||||
|
||||
#include "mapi/u_current.h"
|
||||
#include "glapi/glthread.h"
|
||||
|
||||
typedef void (*_glapi_proc)(void);
|
||||
struct _glapi_table;
|
||||
|
||||
#define GET_DISPATCH() ((struct _glapi_table *) u_current_get())
|
||||
#define GET_CURRENT_CONTEXT(C) GLcontext *C = (GLcontext *) u_current_get_user()
|
||||
|
||||
PUBLIC unsigned int
|
||||
#if defined (GLX_USE_TLS)
|
||||
|
||||
_GLAPI_EXPORT extern __thread struct _glapi_table * _glapi_tls_Dispatch
|
||||
__attribute__((tls_model("initial-exec")));
|
||||
|
||||
_GLAPI_EXPORT extern __thread void * _glapi_tls_Context
|
||||
__attribute__((tls_model("initial-exec")));
|
||||
|
||||
_GLAPI_EXPORT extern const struct _glapi_table *_glapi_Dispatch;
|
||||
_GLAPI_EXPORT extern const void *_glapi_Context;
|
||||
|
||||
# define GET_DISPATCH() _glapi_tls_Dispatch
|
||||
# define GET_CURRENT_CONTEXT(C) GLcontext *C = (GLcontext *) _glapi_tls_Context
|
||||
|
||||
#else
|
||||
|
||||
_GLAPI_EXPORT extern struct _glapi_table *_glapi_Dispatch;
|
||||
_GLAPI_EXPORT 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) */
|
||||
|
||||
|
||||
void
|
||||
_glapi_destroy_multithread(void);
|
||||
|
||||
|
||||
_GLAPI_EXPORT void
|
||||
_glapi_check_multithread(void);
|
||||
|
||||
|
||||
_GLAPI_EXPORT void
|
||||
_glapi_set_context(void *context);
|
||||
|
||||
|
||||
_GLAPI_EXPORT void *
|
||||
_glapi_get_context(void);
|
||||
|
||||
|
||||
_GLAPI_EXPORT void
|
||||
_glapi_set_dispatch(struct _glapi_table *dispatch);
|
||||
|
||||
|
||||
_GLAPI_EXPORT struct _glapi_table *
|
||||
_glapi_get_dispatch(void);
|
||||
|
||||
|
||||
_GLAPI_EXPORT unsigned int
|
||||
_glapi_get_dispatch_table_size(void);
|
||||
|
||||
|
||||
PUBLIC int
|
||||
_GLAPI_EXPORT int
|
||||
_glapi_add_dispatch( const char * const * function_names,
|
||||
const char * parameter_signature );
|
||||
|
||||
PUBLIC int
|
||||
_GLAPI_EXPORT int
|
||||
_glapi_get_proc_offset(const char *funcName);
|
||||
|
||||
|
||||
PUBLIC _glapi_proc
|
||||
_GLAPI_EXPORT _glapi_proc
|
||||
_glapi_get_proc_address(const char *funcName);
|
||||
|
||||
|
||||
PUBLIC const char *
|
||||
_GLAPI_EXPORT const char *
|
||||
_glapi_get_proc_name(unsigned int offset);
|
||||
|
||||
|
||||
#endif
|
||||
_GLAPI_EXPORT unsigned long
|
||||
_glthread_GetID(void);
|
||||
|
||||
|
||||
/*
|
||||
* These stubs are kept so that the old DRI drivers still load.
|
||||
*/
|
||||
_GLAPI_EXPORT void
|
||||
_glapi_noop_enable_warnings(unsigned char enable);
|
||||
|
||||
|
||||
_GLAPI_EXPORT void
|
||||
_glapi_set_warning_func(_glapi_proc func);
|
||||
|
||||
|
||||
#endif /* _GLAPI_H */
|
||||
|
|
|
|||
|
|
@ -49,17 +49,8 @@
|
|||
#include "glapi/glapi.h"
|
||||
|
||||
|
||||
/*
|
||||
* These stubs are kept so that the old DRI drivers still load.
|
||||
*/
|
||||
PUBLIC void
|
||||
_glapi_noop_enable_warnings(GLboolean enable);
|
||||
|
||||
PUBLIC void
|
||||
_glapi_set_warning_func(_glapi_proc func);
|
||||
|
||||
void
|
||||
_glapi_noop_enable_warnings(GLboolean enable)
|
||||
_glapi_noop_enable_warnings(unsigned char enable)
|
||||
{
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
#include "glthread.h"
|
||||
#include "glapi/glapi.h"
|
||||
|
||||
unsigned long
|
||||
_glthread_GetID(void)
|
||||
|
|
|
|||
|
|
@ -17,7 +17,4 @@
|
|||
typedef struct u_tsd _glthread_TSD;
|
||||
typedef u_mutex _glthread_Mutex;
|
||||
|
||||
PUBLIC unsigned long
|
||||
_glthread_GetID(void);
|
||||
|
||||
#endif /* THREADS_H */
|
||||
#endif /* GLTHREAD_H */
|
||||
|
|
|
|||
|
|
@ -4,49 +4,44 @@
|
|||
#include "u_compiler.h"
|
||||
|
||||
#ifdef MAPI_GLAPI_CURRENT
|
||||
#define GLAPI_EXPORT PUBLIC
|
||||
#else
|
||||
#define GLAPI_EXPORT
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Unlike other utility functions, we need to keep the old names (_glapi_*) for
|
||||
* ABI compatibility. The desired functions are wrappers to the old ones.
|
||||
*/
|
||||
#include "glapi/glapi.h"
|
||||
|
||||
#else /* MAPI_GLAPI_CURRENT */
|
||||
|
||||
struct _glapi_table;
|
||||
|
||||
#ifdef GLX_USE_TLS
|
||||
|
||||
GLAPI_EXPORT extern __thread struct _glapi_table *_glapi_tls_Dispatch
|
||||
extern __thread struct _glapi_table *_glapi_tls_Dispatch
|
||||
__attribute__((tls_model("initial-exec")));
|
||||
|
||||
GLAPI_EXPORT extern __thread void *_glapi_tls_Context
|
||||
extern __thread void *_glapi_tls_Context
|
||||
__attribute__((tls_model("initial-exec")));
|
||||
|
||||
GLAPI_EXPORT extern const struct _glapi_table *_glapi_Dispatch;
|
||||
GLAPI_EXPORT extern const void *_glapi_Context;
|
||||
extern const struct _glapi_table *_glapi_Dispatch;
|
||||
extern const void *_glapi_Context;
|
||||
|
||||
#else /* GLX_USE_TLS */
|
||||
|
||||
GLAPI_EXPORT extern struct _glapi_table *_glapi_Dispatch;
|
||||
GLAPI_EXPORT extern void *_glapi_Context;
|
||||
extern struct _glapi_table *_glapi_Dispatch;
|
||||
extern void *_glapi_Context;
|
||||
|
||||
#endif /* GLX_USE_TLS */
|
||||
|
||||
GLAPI_EXPORT void
|
||||
void
|
||||
_glapi_check_multithread(void);
|
||||
|
||||
GLAPI_EXPORT void
|
||||
void
|
||||
_glapi_set_context(void *context);
|
||||
|
||||
GLAPI_EXPORT void *
|
||||
void *
|
||||
_glapi_get_context(void);
|
||||
|
||||
GLAPI_EXPORT void
|
||||
void
|
||||
_glapi_set_dispatch(struct _glapi_table *dispatch);
|
||||
|
||||
GLAPI_EXPORT struct _glapi_table *
|
||||
struct _glapi_table *
|
||||
_glapi_get_dispatch(void);
|
||||
|
||||
void
|
||||
|
|
@ -90,4 +85,6 @@ u_current_get_user(void)
|
|||
#endif
|
||||
}
|
||||
|
||||
#endif /* GLX_USE_TLS */
|
||||
#endif /* MAPI_GLAPI_CURRENT */
|
||||
|
||||
#endif /* _U_CURRENT_H_ */
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue