21 #include "../../SDL_internal.h" 23 #if SDL_VIDEO_DRIVER_MIR 25 #define DEBUG_DYNAMIC_MIR 0 33 #ifdef SDL_VIDEO_DRIVER_MIR_DYNAMIC 44 #ifndef SDL_VIDEO_DRIVER_MIR_DYNAMIC 45 #define SDL_VIDEO_DRIVER_MIR_DYNAMIC NULL 47 #ifndef SDL_VIDEO_DRIVER_MIR_DYNAMIC_XKBCOMMON 48 #define SDL_VIDEO_DRIVER_MIR_DYNAMIC_XKBCOMMON NULL 51 static mirdynlib mirlibs[] = {
57 MIR_GetSym(
const char *fnname,
int *pHasModule)
62 if (mirlibs[i].lib !=
NULL) {
71 SDL_Log(
"MIR: Found '%s' in %s (%p)\n", fnname, mirlibs[i].libname, fn);
73 SDL_Log(
"MIR: Symbol '%s' NOT FOUND!\n", fnname);
85 #define SDL_MIR_MODULE(modname) int SDL_MIR_HAVE_##modname = 0; 86 #define SDL_MIR_SYM(rc,fn,params) SDL_DYNMIRFN_##fn MIR_##fn = NULL; 87 #define SDL_MIR_SYM_CONST(type,name) SDL_DYMMIRCONST_##name MIR_##name = NULL; 91 #undef SDL_MIR_SYM_CONST 93 static int mir_load_refcount = 0;
99 if (mir_load_refcount > 0) {
100 if (--mir_load_refcount == 0) {
101 #ifdef SDL_VIDEO_DRIVER_MIR_DYNAMIC 106 #define SDL_MIR_MODULE(modname) SDL_MIR_HAVE_##modname = 0; 107 #define SDL_MIR_SYM(rc,fn,params) MIR_##fn = NULL; 108 #define SDL_MIR_SYM_CONST(type,name) MIR_##name = NULL; 110 #undef SDL_MIR_MODULE 112 #undef SDL_MIR_SYM_CONST 115 #ifdef SDL_VIDEO_DRIVER_MIR_DYNAMIC 117 if (mirlibs[i].lib !=
NULL) {
119 mirlibs[
i].lib =
NULL;
134 if (mir_load_refcount++ == 0) {
135 #ifdef SDL_VIDEO_DRIVER_MIR_DYNAMIC 139 if (mirlibs[i].libname !=
NULL) {
144 #define SDL_MIR_MODULE(modname) SDL_MIR_HAVE_##modname = 1; 145 #define SDL_MIR_SYM(rc,fn,params) 146 #define SDL_MIR_SYM_CONST(type,name) 148 #undef SDL_MIR_MODULE 150 #undef SDL_MIR_SYM_CONST 152 #define SDL_MIR_MODULE(modname) thismod = &SDL_MIR_HAVE_##modname; 153 #define SDL_MIR_SYM(rc,fn,params) MIR_##fn = (SDL_DYNMIRFN_##fn) MIR_GetSym(#fn,thismod); 154 #define SDL_MIR_SYM_CONST(type,name) MIR_##name = *(SDL_DYMMIRCONST_##name*) MIR_GetSym(#name,thismod); 156 #undef SDL_MIR_MODULE 158 #undef SDL_MIR_SYM_CONST 160 if ((SDL_MIR_HAVE_MIR_CLIENT) && (SDL_MIR_HAVE_XKBCOMMON)) {
171 #define SDL_MIR_MODULE(modname) SDL_MIR_HAVE_##modname = 1; 172 #define SDL_MIR_SYM(rc,fn,params) MIR_##fn = fn; 173 #define SDL_MIR_SYM_CONST(type,name) MIR_##name = name; 175 #undef SDL_MIR_MODULE 177 #undef SDL_MIR_SYM_CONST
#define SDL_VIDEO_DRIVER_MIR_DYNAMIC_XKBCOMMON
void SDL_MIR_UnloadSymbols(void)
#define SDL_VIDEO_DRIVER_MIR_DYNAMIC
#define SDL_TABLESIZE(table)
return Display return Display Bool Bool int int int return Display XEvent Bool(*) XPointer return Display return Display Drawable _Xconst char unsigned int unsigned int return Display Pixmap Pixmap XColor XColor unsigned int unsigned int return Display _Xconst char char int char return Display Visual unsigned int int int char unsigned int unsigned int in i)
void * SDL_LoadFunction(void *handle, const char *name)
int SDL_MIR_LoadSymbols(void)