not required
git-svn-id: file:///var/svn/milsko-quake/trunk@8 78c9b134-79e4-4a3a-b968-f1130b8f396c
This commit is contained in:
parent
8f8d85067e
commit
9fe97a996a
1 changed files with 0 additions and 716 deletions
716
include/XDL.h
716
include/XDL.h
|
|
@ -1,716 +0,0 @@
|
||||||
/*
|
|
||||||
<Colleague Riley>
|
|
||||||
|
|
||||||
This is free and unencumbered software released into the public domain.
|
|
||||||
Anyone is free to copy, modify, publish, use, compile, sell, or distribute this
|
|
||||||
software, either in source code form or as a compiled binary, for any purpose,
|
|
||||||
commercial or non-commercial, and by any means.
|
|
||||||
In jurisdictions that recognize copyright laws, the author or authors of this
|
|
||||||
software dedicate any and all copyright interest in the software to the public
|
|
||||||
domain. We make this dedication for the benefit of the public at large and to
|
|
||||||
the detriment of our heirs and successors. We intend this dedication to be an
|
|
||||||
overt act of relinquishment in perpetuity of all present and future rights to
|
|
||||||
this software under copyright law.
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
|
|
||||||
ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
|
||||||
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
||||||
|
|
||||||
Credit is not required but would be greatly appreciated. :)
|
|
||||||
*/
|
|
||||||
|
|
||||||
/*
|
|
||||||
#define XDL_IMPLEMENTATION - (semi-option) makes it so function definitions are included
|
|
||||||
#define XDL_NO_GLX - (optional) Makes it so the GLX module is not included
|
|
||||||
#define XDL_NO_DEALLOCATE - (optional) Disables automatic deallocation for c++, returns back to C's void** system
|
|
||||||
*/
|
|
||||||
|
|
||||||
/*
|
|
||||||
Credits :
|
|
||||||
GLFW - Much of this implementation is based on GLFW's internal x11 dynamic loader
|
|
||||||
A great portion of the declarations for the X11 module are sourced from GLFW
|
|
||||||
|
|
||||||
stb - This project is heavily inspired by the stb single header files
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include <X11/Xlib.h>
|
|
||||||
#include <X11/Xutil.h>
|
|
||||||
#include <X11/XKBlib.h>
|
|
||||||
#include <X11/Xresource.h>
|
|
||||||
|
|
||||||
|
|
||||||
#if defined(XDL_EXPORT) || defined(XDL_IMPORT)
|
|
||||||
#if defined(_WIN32)
|
|
||||||
#if defined(__TINYC__) && (defined(XDL_EXPORT) || defined(XDL_IMPORT))
|
|
||||||
#define __declspec(x) __attribute__((x))
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined(XDL_EXPORT)
|
|
||||||
#define XDLDEF __declspec(dllexport)
|
|
||||||
#else
|
|
||||||
#define XDLDEF __declspec(dllimport)
|
|
||||||
#endif
|
|
||||||
#else
|
|
||||||
#if defined(XDL_EXPORT)
|
|
||||||
#define XDLDEF __attribute__((visibility("default")))
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef XDLDEF
|
|
||||||
#define XDLDEF inline
|
|
||||||
#endif
|
|
||||||
|
|
||||||
XDLDEF void XDL_init(void); /* inits the X11 (and GLX) modules */
|
|
||||||
XDLDEF void XDL_close(void); /* closes and frees the X11 (and GLX modules) */
|
|
||||||
|
|
||||||
/* function types */
|
|
||||||
typedef XClassHint* (* PFN_XAllocClassHint)(void);
|
|
||||||
typedef XSizeHints* (* PFN_XAllocSizeHints)(void);
|
|
||||||
typedef XWMHints* (* PFN_XAllocWMHints)(void);
|
|
||||||
typedef int (* PFN_XChangeProperty)(Display*,Window,Atom,Atom,int,int,const unsigned char*,int);
|
|
||||||
typedef int (* PFN_XChangeWindowAttributes)(Display*,Window,unsigned long,XSetWindowAttributes*);
|
|
||||||
typedef Bool (* PFN_XCheckIfEvent)(Display*,XEvent*,Bool(*)(Display*,XEvent*,XPointer),XPointer);
|
|
||||||
typedef Bool (* PFN_XCheckTypedWindowEvent)(Display*,Window,int,XEvent*);
|
|
||||||
typedef int (* PFN_XCloseDisplay)(Display*);
|
|
||||||
typedef Status (* PFN_XCloseIM)(XIM);
|
|
||||||
typedef int (* PFN_XConvertSelection)(Display*,Atom,Atom,Atom,Window,Time);
|
|
||||||
typedef Colormap (* PFN_XCreateColormap)(Display*,Window,Visual*,int);
|
|
||||||
typedef Cursor (* PFN_XCreateFontCursor)(Display*,unsigned int);
|
|
||||||
typedef XIC (* PFN_XCreateIC)(XIM,...);
|
|
||||||
typedef Region (* PFN_XCreateRegion)(void);
|
|
||||||
typedef Window (* PFN_XCreateWindow)(Display*,Window,int,int,unsigned int,unsigned int,unsigned int,int,unsigned int,Visual*,unsigned long,XSetWindowAttributes*);
|
|
||||||
typedef int (* PFN_XDefineCursor)(Display*,Window,Cursor);
|
|
||||||
typedef int (* PFN_XDeleteContext)(Display*,XID,XContext);
|
|
||||||
typedef int (* PFN_XDeleteProperty)(Display*,Window,Atom);
|
|
||||||
typedef void (* PFN_XDestroyIC)(XIC);
|
|
||||||
typedef int (* PFN_XDestroyRegion)(Region);
|
|
||||||
typedef int (* PFN_XDestroyWindow)(Display*,Window);
|
|
||||||
typedef int (* PFN_XDisplayKeycodes)(Display*,int*,int*);
|
|
||||||
typedef int (* PFN_XEventsQueued)(Display*,int);
|
|
||||||
typedef Bool (* PFN_XFilterEvent)(XEvent*,Window);
|
|
||||||
typedef int (* PFN_XFindContext)(Display*,XID,XContext,XPointer*);
|
|
||||||
typedef int (* PFN_XFlush)(Display*);
|
|
||||||
typedef int (* PFN_XFree)(void*);
|
|
||||||
typedef int (* PFN_XFreeColormap)(Display*,Colormap);
|
|
||||||
typedef int (* PFN_XFreeCursor)(Display*,Cursor);
|
|
||||||
typedef void (* PFN_XFreeEventData)(Display*,XGenericEventCookie*);
|
|
||||||
typedef int (* PFN_XGetErrorText)(Display*,int,char*,int);
|
|
||||||
typedef Bool (* PFN_XGetEventData)(Display*,XGenericEventCookie*);
|
|
||||||
typedef char* (* PFN_XGetICValues)(XIC,...);
|
|
||||||
typedef char* (* PFN_XGetIMValues)(XIM,...);
|
|
||||||
typedef int (* PFN_XGetInputFocus)(Display*,Window*,int*);
|
|
||||||
typedef KeySym* (* PFN_XGetKeyboardMapping)(Display*,KeyCode,int,int*);
|
|
||||||
typedef int (* PFN_XGetScreenSaver)(Display*,int*,int*,int*,int*);
|
|
||||||
typedef Window (* PFN_XGetSelectionOwner)(Display*,Atom);
|
|
||||||
typedef XVisualInfo* (* PFN_XGetVisualInfo)(Display*,long,XVisualInfo*,int*);
|
|
||||||
typedef Status (* PFN_XGetWMNormalHints)(Display*,Window,XSizeHints*,long*);
|
|
||||||
typedef Status (* PFN_XGetWindowAttributes)(Display*,Window,XWindowAttributes*);
|
|
||||||
typedef int (* PFN_XGetWindowProperty)(Display*,Window,Atom,long,long,Bool,Atom,Atom*,int*,unsigned long*,unsigned long*,unsigned char**);
|
|
||||||
typedef int (* PFN_XGrabPointer)(Display*,Window,Bool,unsigned int,int,int,Window,Cursor,Time);
|
|
||||||
typedef Status (* PFN_XIconifyWindow)(Display*,Window,int);
|
|
||||||
typedef Status (* PFN_XInitThreads)(void);
|
|
||||||
typedef Atom (* PFN_XInternAtom)(Display*,const char*,Bool);
|
|
||||||
typedef int (* PFN_XLookupString)(XKeyEvent*,char*,int,KeySym*,XComposeStatus*);
|
|
||||||
typedef int (* PFN_XMapRaised)(Display*,Window);
|
|
||||||
typedef int (* PFN_XMapWindow)(Display*,Window);
|
|
||||||
typedef int (* PFN_XMoveResizeWindow)(Display*,Window,int,int,unsigned int,unsigned int);
|
|
||||||
typedef int (* PFN_XMoveWindow)(Display*,Window,int,int);
|
|
||||||
typedef int (* PFN_XNextEvent)(Display*,XEvent*);
|
|
||||||
typedef Display* (* PFN_XOpenDisplay)(const char*);
|
|
||||||
typedef int (* PFN_XPeekEvent)(Display*,XEvent*);
|
|
||||||
typedef int (* PFN_XPending)(Display*);
|
|
||||||
typedef Bool (* PFN_XQueryExtension)(Display*,const char*,int*,int*,int*);
|
|
||||||
typedef Bool (* PFN_XQueryPointer)(Display*,Window,Window*,Window*,int*,int*,int*,int*,unsigned int*);
|
|
||||||
typedef int (* PFN_XRaiseWindow)(Display*,Window);
|
|
||||||
typedef Bool (* PFN_XRegisterIMInstantiateCallback)(Display*,void*,char*,char*,XIDProc,XPointer);
|
|
||||||
typedef int (* PFN_XResizeWindow)(Display*,Window,unsigned int,unsigned int);
|
|
||||||
typedef char* (* PFN_XResourceManagerString)(Display*);
|
|
||||||
typedef int (* PFN_XSaveContext)(Display*,XID,XContext,const char*);
|
|
||||||
typedef int (* PFN_XSelectInput)(Display*,Window,long);
|
|
||||||
typedef Status (* PFN_XSendEvent)(Display*,Window,Bool,long,XEvent*);
|
|
||||||
typedef int (* PFN_XSetClassHint)(Display*,Window,XClassHint*);
|
|
||||||
typedef XErrorHandler (* PFN_XSetErrorHandler)(XErrorHandler);
|
|
||||||
typedef void (* PFN_XSetICFocus)(XIC);
|
|
||||||
typedef char* (* PFN_XSetIMValues)(XIM,...);
|
|
||||||
typedef int (* PFN_XSetInputFocus)(Display*,Window,int,Time);
|
|
||||||
typedef char* (* PFN_XSetLocaleModifiers)(const char*);
|
|
||||||
typedef int (* PFN_XSetScreenSaver)(Display*,int,int,int,int);
|
|
||||||
typedef int (* PFN_XSetSelectionOwner)(Display*,Atom,Window,Time);
|
|
||||||
typedef int (* PFN_XSetWMHints)(Display*,Window,XWMHints*);
|
|
||||||
typedef void (* PFN_XSetWMNormalHints)(Display*,Window,XSizeHints*);
|
|
||||||
typedef Status (* PFN_XSetWMProtocols)(Display*,Window,Atom*,int);
|
|
||||||
typedef Bool (* PFN_XSupportsLocale)(void);
|
|
||||||
typedef int (* PFN_XSync)(Display*,Bool);
|
|
||||||
typedef Bool (* PFN_XTranslateCoordinates)(Display*,Window,Window,int,int,int*,int*,Window*);
|
|
||||||
typedef int (* PFN_XUndefineCursor)(Display*,Window);
|
|
||||||
typedef int (* PFN_XUngrabPointer)(Display*,Time);
|
|
||||||
typedef int (* PFN_XUnmapWindow)(Display*,Window);
|
|
||||||
typedef void (* PFN_XUnsetICFocus)(XIC);
|
|
||||||
typedef VisualID (* PFN_XVisualIDFromVisual)(Visual*);
|
|
||||||
typedef int (* PFN_XWarpPointer)(Display*,Window,Window,int,int,unsigned int,unsigned int,int,int);
|
|
||||||
typedef void (* PFN_XkbFreeKeyboard)(XkbDescPtr,unsigned int,Bool);
|
|
||||||
typedef void (* PFN_XkbFreeNames)(XkbDescPtr,unsigned int,Bool);
|
|
||||||
typedef XkbDescPtr (* PFN_XkbGetMap)(Display*,unsigned int,unsigned int);
|
|
||||||
typedef XkbDescPtr (* PFN_XkbGetKeyboardByName)(Display*,unsigned int,XkbComponentNamesPtr,unsigned int,unsigned int,Bool);
|
|
||||||
typedef Status (* PFN_XkbGetNames)(Display*,unsigned int,XkbDescPtr);
|
|
||||||
typedef Status (* PFN_XkbGetState)(Display*,unsigned int,XkbStatePtr);
|
|
||||||
typedef KeySym (* PFN_XkbKeycodeToKeysym)(Display*,KeyCode,int,int);
|
|
||||||
typedef Bool (* PFN_XkbQueryExtension)(Display*,int*,int*,int*,int*,int*);
|
|
||||||
typedef Bool (* PFN_XkbSelectEventDetails)(Display*,unsigned int,unsigned int,unsigned long,unsigned long);
|
|
||||||
typedef Bool (* PFN_XkbSetDetectableAutoRepeat)(Display*,Bool,Bool*);
|
|
||||||
typedef KeySym (*PFN_XStringToKeysym)(char*);
|
|
||||||
typedef int (*PFN_XConnectionNumber)(Display*);
|
|
||||||
typedef int (*PFN_XStoreName)(Display*, Window, const char*);
|
|
||||||
typedef Status (*PFN_XMatchVisualInfo)(Display*, int, int, int, XVisualInfo*);
|
|
||||||
typedef void (*PFN_XSetWMSizeHints)(Display*, Window, XSizeHints*, Atom);
|
|
||||||
typedef char* (*PFN_XKeysymToString)(KeySym);
|
|
||||||
typedef int (*PFN_XGetKeyboardControl)(Display*, XKeyboardState*);
|
|
||||||
typedef char* (*PFN_XGetAtomName)(Display*, Atom);
|
|
||||||
typedef Window (*PFN_XDefaultRootWindow)(Display*);
|
|
||||||
typedef int (*PFN_XQueryKeymap)(Display*, char[32]);
|
|
||||||
typedef KeyCode (*PFN_XKeysymToKeycode)(Display*, KeySym);
|
|
||||||
typedef void (*PFN_XFreeColors)(Display *display, Colormap colormap, unsigned long *pixels, int npixels, unsigned long planes);
|
|
||||||
typedef int (*PFN_XDisplayWidth)(Display *display, int screen_number);
|
|
||||||
typedef int (*PFN_XDisplayHeight)(Display *display, int screen_number);
|
|
||||||
typedef int (*PFN_XGetSystemContentDPI)(Display* display);
|
|
||||||
typedef XrmDatabase (*PFN_XrmGetStringDatabase)(const char *data);
|
|
||||||
typedef Bool (*PFN_XrmGetResource)(XrmDatabase database, const char *resource_name, const char *resource_class, char **type, XrmValue *value);
|
|
||||||
typedef void (*PFN_XrmDestroyDatabase)(XrmDatabase database);
|
|
||||||
typedef char *(*PFN_XDisplayName)(const char *string);
|
|
||||||
typedef int (*PFN_XWidthOfScreen)(Screen* screen);
|
|
||||||
typedef int (*PFN_XHeightOfScreen)(Screen* screen);
|
|
||||||
typedef GC (*PFN_XCreateGC)(Display* display, Drawable d, unsigned long valuemask, XGCValues* values);
|
|
||||||
typedef int (*PFN_XFreeGC)(Display *display, GC gc);
|
|
||||||
typedef XImage* (*PFN_XCreateImage)(Display*, Visual*, unsigned int, int, int, char*, unsigned int, unsigned int, int, int);
|
|
||||||
typedef Pixmap (*PFN_XCreatePixmap)(Display* display, Drawable d, unsigned int width, unsigned int height, unsigned int depth);
|
|
||||||
typedef int (*PFN_XPutImage)(Display *display, Drawable d, GC gc, XImage *image, int src_x, int src_y, int dest_x, int dest_y, unsigned int width, unsigned int height);
|
|
||||||
|
|
||||||
#ifndef XDL_NO_XRANDR
|
|
||||||
#include <X11/extensions/Xrandr.h>
|
|
||||||
typedef XRRScreenResources *(*PFN_XRRGetScreenResourcesCurrent)(Display *display, Window window);
|
|
||||||
typedef XRRCrtcInfo *(*PFN_XRRGetCrtcInfo)(Display *display, XRRScreenResources *resources, RRCrtc crtc);
|
|
||||||
typedef XRROutputInfo *(*PFN_XRRGetOutputInfo)(Display *display, XRRScreenResources *resources, RROutput output);
|
|
||||||
typedef void (*PFN_XRRFreeCrtcInfo)(XRRCrtcInfo *crtc_info);
|
|
||||||
typedef XRRScreenResources *(*PFN_XRRGetScreenResources)(Display *display, Window window);
|
|
||||||
typedef void (*PFN_XRRFreeScreenResources)(XRRScreenResources *resources);
|
|
||||||
typedef void (*PFN_XRRFreeOutputInfo)(XRROutputInfo*);
|
|
||||||
typedef Status (*PFN_XRRSetScreenConfig) (Display *dpy, XRRScreenConfiguration *config, Drawable draw, int size_index, Rotation rotation, Time timestamp);
|
|
||||||
typedef Status (*PFN_XRRSetCrtcConfig)(Display*, XRRScreenResources*, RRCrtc, Time, int, int, RRMode, Rotation, RROutput*, int);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef XDL_NO_GLX
|
|
||||||
|
|
||||||
#include <GL/glx.h>
|
|
||||||
typedef XVisualInfo* (*PFN_glXChooseVisual)(Display*, int, int*);
|
|
||||||
typedef GLXContext (*PFN_glXCreateContext)(Display*, XVisualInfo*, GLXContext, Bool);
|
|
||||||
typedef Bool (*PFN_glXMakeCurrent)(Display*, GLXDrawable, GLXContext);
|
|
||||||
typedef GLXContext (*PFN_glXGetCurrentContext)(void);
|
|
||||||
typedef void (*PFN_glXSwapBuffers)(Display*, GLXDrawable);
|
|
||||||
typedef PFNGLXSWAPINTERVALEXTPROC PFN_glXSwapIntervalEXT;
|
|
||||||
typedef void* (*PFN_glXGetProcAddress)(const GLubyte *procname);
|
|
||||||
typedef PFNGLXGETVISUALFROMFBCONFIGPROC PFN_glXGetVisualFromFBConfig;
|
|
||||||
typedef PFNGLXGETFBCONFIGATTRIBPROC PFN_glXGetFBConfigAttrib;
|
|
||||||
typedef __GLXextFuncPtr (*PFN_glXGetProcAddressARB)(const GLubyte *);
|
|
||||||
typedef PFNGLXCHOOSEFBCONFIGPROC PFN_glXChooseFBConfig;
|
|
||||||
typedef void (*PFN_glXDestroyContext)(Display *dpy, GLXContext ctx);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* Src vars for reciving the functions */
|
|
||||||
PFN_XAllocClassHint XAllocClassHintSrc;
|
|
||||||
PFN_XAllocSizeHints XAllocSizeHintsSrc;
|
|
||||||
PFN_XAllocWMHints XAllocWMHintsSrc;
|
|
||||||
PFN_XChangeProperty XChangePropertySrc;
|
|
||||||
PFN_XChangeWindowAttributes XChangeWindowAttributesSrc;
|
|
||||||
PFN_XCheckIfEvent XCheckIfEventSrc;
|
|
||||||
PFN_XCheckTypedWindowEvent XCheckTypedWindowEventSrc;
|
|
||||||
PFN_XCloseDisplay XCloseDisplaySrc;
|
|
||||||
PFN_XCloseIM XCloseIMSrc;
|
|
||||||
PFN_XConvertSelection XConvertSelectionSrc;
|
|
||||||
PFN_XCreateColormap XCreateColormapSrc;
|
|
||||||
PFN_XCreateFontCursor XCreateFontCursorSrc;
|
|
||||||
PFN_XCreateIC XCreateICSrc;
|
|
||||||
PFN_XCreateRegion XCreateRegionSrc;
|
|
||||||
PFN_XCreateWindow XCreateWindowSrc;
|
|
||||||
PFN_XDefineCursor XDefineCursorSrc;
|
|
||||||
PFN_XDeleteContext XDeleteContextSrc;
|
|
||||||
PFN_XDeleteProperty XDeletePropertySrc;
|
|
||||||
PFN_XDestroyIC XDestroyICSrc;
|
|
||||||
PFN_XDestroyRegion XDestroyRegionSrc;
|
|
||||||
PFN_XDestroyWindow XDestroyWindowSrc;
|
|
||||||
PFN_XDisplayKeycodes XDisplayKeycodesSrc;
|
|
||||||
PFN_XEventsQueued XEventsQueuedSrc;
|
|
||||||
PFN_XFilterEvent XFilterEventSrc;
|
|
||||||
PFN_XFindContext XFindContextSrc;
|
|
||||||
PFN_XFlush XFlushSrc;
|
|
||||||
PFN_XFree XFreeSrc;
|
|
||||||
PFN_XFreeColormap XFreeColormapSrc;
|
|
||||||
PFN_XFreeCursor XFreeCursorSrc;
|
|
||||||
PFN_XFreeEventData XFreeEventDataSrc;
|
|
||||||
PFN_XGetErrorText XGetErrorTextSrc;
|
|
||||||
PFN_XGetEventData XGetEventDataSrc;
|
|
||||||
PFN_XGetICValues XGetICValuesSrc;
|
|
||||||
PFN_XGetIMValues XGetIMValuesSrc;
|
|
||||||
PFN_XGetInputFocus XGetInputFocusSrc;
|
|
||||||
PFN_XGetKeyboardMapping XGetKeyboardMappingSrc;
|
|
||||||
PFN_XGetScreenSaver XGetScreenSaverSrc;
|
|
||||||
PFN_XGetSelectionOwner XGetSelectionOwnerSrc;
|
|
||||||
PFN_XGetVisualInfo XGetVisualInfoSrc;
|
|
||||||
PFN_XGetWMNormalHints XGetWMNormalHintsSrc;
|
|
||||||
PFN_XGetWindowAttributes XGetWindowAttributesSrc;
|
|
||||||
PFN_XGetWindowProperty XGetWindowPropertySrc;
|
|
||||||
PFN_XGrabPointer XGrabPointerSrc;
|
|
||||||
PFN_XIconifyWindow XIconifyWindowSrc;
|
|
||||||
PFN_XInternAtom XInternAtomSrc;
|
|
||||||
PFN_XLookupString XLookupStringSrc;
|
|
||||||
PFN_XMapRaised XMapRaisedSrc;
|
|
||||||
PFN_XMapWindow XMapWindowSrc;
|
|
||||||
PFN_XMoveResizeWindow XMoveResizeWindowSrc;
|
|
||||||
PFN_XMoveWindow XMoveWindowSrc;
|
|
||||||
PFN_XNextEvent XNextEventSrc;
|
|
||||||
PFN_XPeekEvent XPeekEventSrc;
|
|
||||||
PFN_XPending XPendingSrc;
|
|
||||||
PFN_XQueryExtension XQueryExtensionSrc;
|
|
||||||
PFN_XQueryPointer XQueryPointerSrc;
|
|
||||||
PFN_XRaiseWindow XRaiseWindowSrc;
|
|
||||||
PFN_XRegisterIMInstantiateCallback XRegisterIMInstantiateCallbackSrc;
|
|
||||||
PFN_XResizeWindow XResizeWindowSrc;
|
|
||||||
PFN_XResourceManagerString XResourceManagerStringSrc;
|
|
||||||
PFN_XSaveContext XSaveContextSrc;
|
|
||||||
PFN_XSelectInput XSelectInputSrc;
|
|
||||||
PFN_XSendEvent XSendEventSrc;
|
|
||||||
PFN_XSetClassHint XSetClassHintSrc;
|
|
||||||
PFN_XSetErrorHandler XSetErrorHandlerSrc;
|
|
||||||
PFN_XSetICFocus XSetICFocusSrc;
|
|
||||||
PFN_XSetIMValues XSetIMValuesSrc;
|
|
||||||
PFN_XSetInputFocus XSetInputFocusSrc;
|
|
||||||
PFN_XSetLocaleModifiers XSetLocaleModifiersSrc;
|
|
||||||
PFN_XSetScreenSaver XSetScreenSaverSrc;
|
|
||||||
PFN_XSetSelectionOwner XSetSelectionOwnerSrc;
|
|
||||||
PFN_XSetWMHints XSetWMHintsSrc;
|
|
||||||
PFN_XSetWMNormalHints XSetWMNormalHintsSrc;
|
|
||||||
PFN_XSetWMProtocols XSetWMProtocolsSrc;
|
|
||||||
PFN_XSupportsLocale XSupportsLocaleSrc;
|
|
||||||
PFN_XSync XSyncSrc;
|
|
||||||
PFN_XTranslateCoordinates XTranslateCoordinatesSrc;
|
|
||||||
PFN_XUndefineCursor XUndefineCursorSrc;
|
|
||||||
PFN_XUngrabPointer XUngrabPointerSrc;
|
|
||||||
PFN_XUnmapWindow XUnmapWindowSrc;
|
|
||||||
PFN_XUnsetICFocus XUnsetICFocusSrc;
|
|
||||||
PFN_XVisualIDFromVisual XVisualIDFromVisualSrc;
|
|
||||||
PFN_XWarpPointer XWarpPointerSrc;
|
|
||||||
PFN_XOpenDisplay XOpenDisplaySrc;
|
|
||||||
PFN_XInitThreads XInitThreadsSrc;
|
|
||||||
PFN_XkbKeycodeToKeysym XkbKeycodeToKeysymSrc;
|
|
||||||
PFN_XkbGetMap XkbGetMapSrc;
|
|
||||||
PFN_XkbGetNames XkbGetNamesSrc;
|
|
||||||
PFN_XkbGetKeyboardByName XkbGetKeyboardByNameSrc;
|
|
||||||
PFN_XkbFreeKeyboard XkbFreeKeyboardSrc;
|
|
||||||
PFN_XStringToKeysym XStringToKeysymSrc;
|
|
||||||
PFN_XConnectionNumber XConnectionNumberSrc;
|
|
||||||
PFN_XMatchVisualInfo XMatchVisualInfoSrc;
|
|
||||||
PFN_XSetWMSizeHints XSetWMSizeHintsSrc;
|
|
||||||
PFN_XStoreName XStoreNameSrc;
|
|
||||||
PFN_XKeysymToString XKeysymToStringSrc;
|
|
||||||
PFN_XGetKeyboardControl XGetKeyboardControlSrc;
|
|
||||||
PFN_XGetAtomName XGetAtomNameSrc;
|
|
||||||
PFN_XDefaultRootWindow XDefaultRootWindowSrc;
|
|
||||||
PFN_XQueryKeymap XQueryKeymapSrc;
|
|
||||||
PFN_XKeysymToKeycode XKeysymToKeycodeSrc;
|
|
||||||
PFN_XFreeColors XFreeColorsSrc;
|
|
||||||
PFN_XDisplayWidth XDisplayWidthSrc;
|
|
||||||
PFN_XDisplayHeight XDisplayHeightSrc;
|
|
||||||
PFN_XrmGetStringDatabase XrmGetStringDatabaseSrc;
|
|
||||||
PFN_XrmGetResource XrmGetResourceSrc;
|
|
||||||
PFN_XrmDestroyDatabase XrmDestroyDatabaseSrc;
|
|
||||||
PFN_XDisplayName XDisplayNameSrc;
|
|
||||||
PFN_XkbGetState XkbGetStateSrc;
|
|
||||||
PFN_XWidthOfScreen XWidthOfScreenSrc;
|
|
||||||
PFN_XWidthOfScreen XHeightOfScreenSrc;
|
|
||||||
PFN_XCreateGC XCreateGCSrc;
|
|
||||||
PFN_XFreeGC XFreeGCSrc;
|
|
||||||
PFN_XCreateImage XCreateImageSrc;
|
|
||||||
PFN_XCreatePixmap XCreatePixmapSrc;
|
|
||||||
PFN_XPutImage XPutImageSrc;
|
|
||||||
#ifndef XDL_NO_XRANDR
|
|
||||||
PFN_XRRGetScreenResourcesCurrent XRRGetScreenResourcesCurrentSrc;
|
|
||||||
PFN_XRRGetCrtcInfo XRRGetCrtcInfoSrc;
|
|
||||||
PFN_XRRGetOutputInfo XRRGetOutputInfoSrc;
|
|
||||||
PFN_XRRFreeCrtcInfo XRRFreeCrtcInfoSrc;
|
|
||||||
PFN_XRRGetScreenResources XRRGetScreenResourcesSrc;
|
|
||||||
PFN_XRRFreeScreenResources XRRFreeScreenResourcesSrc;
|
|
||||||
PFN_XRRFreeOutputInfo XRRFreeOutputInfoSrc;
|
|
||||||
PFN_XRRSetScreenConfig XRRSetScreenConfigSrc;
|
|
||||||
PFN_XRRSetCrtcConfig XRRSetCrtcConfigSrc;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef XDL_NO_GLX
|
|
||||||
PFN_glXChooseVisual glXChooseVisualSrc;
|
|
||||||
PFN_glXCreateContext glXCreateContextSrc;
|
|
||||||
PFN_glXMakeCurrent glXMakeCurrentSrc;
|
|
||||||
PFN_glXGetCurrentContext glXGetCurrentContextSrc;
|
|
||||||
PFN_glXSwapBuffers glXSwapBuffersSrc;
|
|
||||||
PFN_glXSwapIntervalEXT glXSwapIntervalEXTSrc;
|
|
||||||
PFN_glXGetProcAddress glXGetProcAddressSrc;
|
|
||||||
PFN_glXGetVisualFromFBConfig glXGetVisualFromFBConfigSrc;
|
|
||||||
PFN_glXGetFBConfigAttrib glXGetFBConfigAttribSrc;
|
|
||||||
PFN_glXGetProcAddressARB glXGetProcAddressARBSrc;
|
|
||||||
PFN_glXChooseFBConfig glXChooseFBConfigSrc;
|
|
||||||
PFN_glXDestroyContext glXDestroyContextSrc;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* Function to source defines */
|
|
||||||
#define XAllocClassHint XAllocClassHintSrc
|
|
||||||
#define XAllocSizeHints XAllocSizeHintsSrc
|
|
||||||
#define XAllocWMHints XAllocWMHintsSrc
|
|
||||||
#define XChangeProperty XChangePropertySrc
|
|
||||||
#define XChangeWindowAttributes XChangeWindowAttributesSrc
|
|
||||||
#define XCheckIfEvent XCheckIfEventSrc
|
|
||||||
#define XCheckTypedWindowEvent XCheckTypedWindowEventSrc
|
|
||||||
#define XCloseDisplay XCloseDisplaySrc
|
|
||||||
#define XCloseIM XCloseIMSrc
|
|
||||||
#define XConvertSelection XConvertSelectionSrc
|
|
||||||
#define XCreateColormap XCreateColormapSrc
|
|
||||||
#define XCreateFontCursor XCreateFontCursorSrc
|
|
||||||
#define XCreateIC XCreateICSrc
|
|
||||||
#define XCreateRegion XCreateRegionSrc
|
|
||||||
#define XCreateWindow XCreateWindowSrc
|
|
||||||
#define XDefineCursor XDefineCursorSrc
|
|
||||||
#define XDeleteContext XDeleteContextSrc
|
|
||||||
#define XDeleteProperty XDeletePropertySrc
|
|
||||||
#define XDestroyIC XDestroyICSrc
|
|
||||||
#define XDestroyRegion XDestroyRegionSrc
|
|
||||||
#define XDestroyWindow XDestroyWindowSrc
|
|
||||||
#define XDisplayKeycodes XDisplayKeycodesSrc
|
|
||||||
#define XkbGetState XkbGetStateSrc
|
|
||||||
#define XWidthOfScreen XWidthOfScreenSrc
|
|
||||||
#define XHeightOfScreen XHeightOfScreenSrc
|
|
||||||
#define XCreateGC XCreateGCSrc
|
|
||||||
#define XFreeGC XFreeGCSrc
|
|
||||||
#define XCreateImage XCreateImageSrc
|
|
||||||
#define XEventsQueued XEventsQueuedSrc
|
|
||||||
#define XFilterEvent XFilterEventSrc
|
|
||||||
#define XFindContext XFindContextSrc
|
|
||||||
#define XFlush XFlushSrc
|
|
||||||
#define XFree XFreeSrc
|
|
||||||
#define XFreeColormap XFreeColormapSrc
|
|
||||||
#define XFreeCursor XFreeCursorSrc
|
|
||||||
#define XFreeEventData XFreeEventDataSrc
|
|
||||||
#define XGetErrorText XGetErrorTextSrc
|
|
||||||
#define XGetEventData XGetEventDataSrc
|
|
||||||
#define XGetICValues XGetICValuesSrc
|
|
||||||
#define XGetIMValues XGetIMValuesSrc
|
|
||||||
#define XGetInputFocus XGetInputFocusSrc
|
|
||||||
#define XGetKeyboardMapping XGetKeyboardMappingSrc
|
|
||||||
#define XGetScreenSaver XGetScreenSaverSrc
|
|
||||||
#define XGetSelectionOwner XGetSelectionOwnerSrc
|
|
||||||
#define XGetVisualInfo XGetVisualInfoSrc
|
|
||||||
#define XGetWMNormalHints XGetWMNormalHintsSrc
|
|
||||||
#define XGetWindowAttributes XGetWindowAttributesSrc
|
|
||||||
#define XGetWindowProperty XGetWindowPropertySrc
|
|
||||||
#define XGrabPointer XGrabPointerSrc
|
|
||||||
#define XIconifyWindow XIconifyWindowSrc
|
|
||||||
#define XInternAtom XInternAtomSrc
|
|
||||||
#define XLookupString XLookupStringSrc
|
|
||||||
#define XMapRaised XMapRaisedSrc
|
|
||||||
#define XMapWindow XMapWindowSrc
|
|
||||||
#define XMoveResizeWindow XMoveResizeWindowSrc
|
|
||||||
#define XMoveWindow XMoveWindowSrc
|
|
||||||
#define XNextEvent XNextEventSrc
|
|
||||||
#define XPeekEvent XPeekEventSrc
|
|
||||||
#define XPending XPendingSrc
|
|
||||||
#define XQueryExtension XQueryExtensionSrc
|
|
||||||
#define XQueryPointer XQueryPointerSrc
|
|
||||||
#define XRaiseWindow XRaiseWindowSrc
|
|
||||||
#define XRegisterIMInstantiateCallback XRegisterIMInstantiateCallbackSrc
|
|
||||||
#define XResizeWindow XResizeWindowSrc
|
|
||||||
#define XResourceManagerString XResourceManagerStringSrc
|
|
||||||
#define XSaveContext XSaveContextSrc
|
|
||||||
#define XSelectInput XSelectInputSrc
|
|
||||||
#define XSendEvent XSendEventSrc
|
|
||||||
#define XSetClassHint XSetClassHintSrc
|
|
||||||
#define XSetErrorHandler XSetErrorHandlerSrc
|
|
||||||
#define XSetICFocus XSetICFocusSrc
|
|
||||||
#define XSetIMValues XSetIMValuesSrc
|
|
||||||
#define XSetInputFocus XSetInputFocusSrc
|
|
||||||
#define XSetLocaleModifiers XSetLocaleModifiersSrc
|
|
||||||
#define XSetScreenSaver XSetScreenSaverSrc
|
|
||||||
#define XSetSelectionOwner XSetSelectionOwnerSrc
|
|
||||||
#define XSetWMHints XSetWMHintsSrc
|
|
||||||
#define XSetWMNormalHints XSetWMNormalHintsSrc
|
|
||||||
#define XSetWMProtocols XSetWMProtocolsSrc
|
|
||||||
#define XSupportsLocale XSupportsLocaleSrc
|
|
||||||
#define XSync XSyncSrc
|
|
||||||
#define XTranslateCoordinates XTranslateCoordinatesSrc
|
|
||||||
#define XUndefineCursor XUndefineCursorSrc
|
|
||||||
#define XUngrabPointer XUngrabPointerSrc
|
|
||||||
#define XUnmapWindow XUnmapWindowSrc
|
|
||||||
#define XUnsetICFocus XUnsetICFocusSrc
|
|
||||||
#define XVisualIDFromVisual XVisualIDFromVisualSrc
|
|
||||||
#define XWarpPointer XWarpPointerSrc
|
|
||||||
#define XStoreName XStoreNameSrc
|
|
||||||
#define XSetWMSizeHints XSetWMSizeHintsSrc
|
|
||||||
#define XOpenDisplay XOpenDisplaySrc
|
|
||||||
#define XStringToKeysym XStringToKeysymSrc
|
|
||||||
#define XQueryKeymap XQueryKeymapSrc
|
|
||||||
#define XKeysymToString XKeysymToStringSrc
|
|
||||||
#define XInitThreads XInitThreadsSrc
|
|
||||||
#define XkbKeycodeToKeysym XkbKeycodeToKeysymSrc
|
|
||||||
#define XkbGetMap XkbGetMapSrc
|
|
||||||
#define XkbGetNames XkbGetNamesSrc
|
|
||||||
#define XkbGetKeyboardByName XkbGetKeyboardByNameSrc
|
|
||||||
#define XkbFreeKeyboard XkbFreeKeyboardSrc
|
|
||||||
#define XGetAtomName XGetAtomNameSrc
|
|
||||||
#define XDefaultRootWindow XDefaultRootWindowSrc
|
|
||||||
#define XMatchVisualInfo XMatchVisualInfoSrc
|
|
||||||
#define XGetKeyboardControl XGetKeyboardControlSrc
|
|
||||||
#define XKeysymToKeycode XKeysymToKeycodeSrc
|
|
||||||
#define XConnectionNumber XConnectionNumberSrc
|
|
||||||
#define XFreeColors XFreeColorsSrc
|
|
||||||
#define XDisplayWidth XDisplayWidthSrc
|
|
||||||
#define XDisplayHeight XDisplayHeightSrc
|
|
||||||
#define XrmGetStringDatabase XrmGetStringDatabaseSrc
|
|
||||||
#define XrmGetResource XrmGetResourceSrc
|
|
||||||
#define XrmDestroyDatabase XrmDestroyDatabaseSrc
|
|
||||||
#define XDisplayName XDisplayNameSrc
|
|
||||||
#define XCreateImage XCreateImageSrc
|
|
||||||
#define XCreatePixmap XCreatePixmapSrc
|
|
||||||
#define XPutImage XPutImageSrc
|
|
||||||
|
|
||||||
#ifndef XDL_NO_XRANDR
|
|
||||||
#define XRRGetScreenResourcesCurrent XRRGetScreenResourcesCurrentSrc
|
|
||||||
#define XRRGetCrtcInfo XRRGetCrtcInfoSrc
|
|
||||||
#define XRRGetOutputInfo XRRGetOutputInfoSrc
|
|
||||||
#define XRRFreeCrtcInfo XRRFreeCrtcInfoSrc
|
|
||||||
#define XRRGetScreenResources XRRGetScreenResourcesSrc
|
|
||||||
#define XRRFreeScreenResources XRRFreeScreenResourcesSrc
|
|
||||||
#define XRRFreeOutputInfo XRRFreeOutputInfoSrc
|
|
||||||
#define XRRSetScreenConfig XRRSetScreenConfigSrc
|
|
||||||
#define XRRSetCrtcConfig XRRSetCrtcConfigSrc
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef XDL_NO_GLX
|
|
||||||
#define glXChooseVisual glXChooseVisualSrc
|
|
||||||
#define glXCreateContext glXCreateContextSrc
|
|
||||||
#define glXMakeCurrent glXMakeCurrentSrc
|
|
||||||
#define glXGetCurrentContext glXGetCurrentContextSrc
|
|
||||||
#define glXSwapBuffers glXSwapBuffersSrc
|
|
||||||
#define glXGetProcAddress glXGetProcAddressSrc
|
|
||||||
#define glXGetVisualFromFBConfig glXGetVisualFromFBConfigSrc
|
|
||||||
#define glXGetFBConfigAttrib glXGetFBConfigAttribSrc
|
|
||||||
#define glXGetProcAddressARB glXGetProcAddressARBSrc
|
|
||||||
#define glXChooseFBConfig glXChooseFBConfigSrc
|
|
||||||
#define glXDestroyContext glXDestroyContextSrc
|
|
||||||
#define glXSwapIntervalEXT glXSwapIntervalEXTSrc
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef XDL_IMPLEMENTATION
|
|
||||||
#include <dlfcn.h>
|
|
||||||
|
|
||||||
#define XDL_PROC_DEF(proc, name) name = (PFN_##name)dlsym(XDL_module[proc], #name)
|
|
||||||
|
|
||||||
|
|
||||||
void* XDL_module[3] = {NULL, NULL, NULL};
|
|
||||||
|
|
||||||
void XDL_init(void) {
|
|
||||||
/* allocating memory for module data */
|
|
||||||
/* loading the modules */
|
|
||||||
#if defined(__CYGWIN__)
|
|
||||||
XDL_module[0] = dlopen("libX11-6.so", RTLD_LAZY | RTLD_LOCAL);
|
|
||||||
#elif defined(__OpenBSD__) || defined(__NetBSD__)
|
|
||||||
XDL_module[0] = dlopen("libX11.so", RTLD_LAZY | RTLD_LOCAL);
|
|
||||||
#else
|
|
||||||
XDL_module[0] = dlopen("libX11.so.6", RTLD_LAZY | RTLD_LOCAL);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef XDL_NO_GLX
|
|
||||||
const char* glxSonames[] = {
|
|
||||||
#if defined(__CYGWIN__)
|
|
||||||
"libGL-1.so",
|
|
||||||
#elif defined(__OpenBSD__) || defined(__NetBSD__)
|
|
||||||
"libGL.so",
|
|
||||||
#else
|
|
||||||
"libGLX.so.0",
|
|
||||||
"libGL.so.1",
|
|
||||||
"libGL.so",
|
|
||||||
#endif
|
|
||||||
};
|
|
||||||
|
|
||||||
for (int i = 0; sizeof(glxSonames) / sizeof(char*); i++) {
|
|
||||||
XDL_module[1] = dlopen(glxSonames[i], RTLD_LAZY | RTLD_LOCAL);
|
|
||||||
if (XDL_module[1])
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined(__CYGWIN__)
|
|
||||||
XDL_module[2] = dlopen("libXrandr-2.so", RTLD_LAZY | RTLD_LOCAL);
|
|
||||||
#elif defined(__OpenBSD__) || defined(__NetBSD__)
|
|
||||||
XDL_module[2] = dlopen("libXrandr.so", RTLD_LAZY | RTLD_LOCAL);
|
|
||||||
#else
|
|
||||||
XDL_module[2] = dlopen("libXrandr.so.2", RTLD_LAZY | RTLD_LOCAL);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* loading the functions into the source vars */
|
|
||||||
XAllocClassHintSrc = (PFN_XAllocClassHint)dlsym(XDL_module[0], "XAllocClassHint");
|
|
||||||
XAllocSizeHintsSrc = (PFN_XAllocSizeHints)dlsym(XDL_module[0], "XAllocSizeHints");
|
|
||||||
XAllocWMHintsSrc = (PFN_XAllocWMHints)dlsym(XDL_module[0], "XAllocWMHints");
|
|
||||||
XChangePropertySrc = (PFN_XChangeProperty)dlsym(XDL_module[0], "XChangeProperty");
|
|
||||||
XChangeWindowAttributesSrc = (PFN_XChangeWindowAttributes)dlsym(XDL_module[0], "XChangeWindowAttributes");
|
|
||||||
XCheckIfEventSrc = (PFN_XCheckIfEvent)dlsym(XDL_module[0], "XCheckIfEvent");
|
|
||||||
XCheckTypedWindowEventSrc = (PFN_XCheckTypedWindowEvent)dlsym(XDL_module[0], "XCheckTypedWindowEvent");
|
|
||||||
XCloseDisplaySrc = (PFN_XCloseDisplay)dlsym(XDL_module[0], "XCloseDisplay");
|
|
||||||
XCloseIMSrc = (PFN_XCloseIM)dlsym(XDL_module[0], "XCloseIM");
|
|
||||||
XConvertSelectionSrc = (PFN_XConvertSelection)dlsym(XDL_module[0], "XConvertSelection");
|
|
||||||
XCreateColormapSrc = (PFN_XCreateColormap)dlsym(XDL_module[0], "XCreateColormap");
|
|
||||||
XCreateFontCursorSrc = (PFN_XCreateFontCursor)dlsym(XDL_module[0], "XCreateFontCursor");
|
|
||||||
XCreateICSrc = (PFN_XCreateIC)dlsym(XDL_module[0], "XCreateIC");
|
|
||||||
XCreateRegionSrc = (PFN_XCreateRegion)dlsym(XDL_module[0], "XCreateRegion");
|
|
||||||
XCreateWindowSrc = (PFN_XCreateWindow)dlsym(XDL_module[0], "XCreateWindow");
|
|
||||||
XDefineCursorSrc = (PFN_XDefineCursor)dlsym(XDL_module[0], "XDefineCursor");
|
|
||||||
XDeleteContextSrc = (PFN_XDeleteContext)dlsym(XDL_module[0], "XDeleteContext");
|
|
||||||
XDeletePropertySrc = (PFN_XDeleteProperty)dlsym(XDL_module[0], "XDeleteProperty");
|
|
||||||
XDestroyICSrc = (PFN_XDestroyIC)dlsym(XDL_module[0], "XDestroyIC");
|
|
||||||
XDestroyRegionSrc = (PFN_XDestroyRegion)dlsym(XDL_module[0], "XDestroyRegion");
|
|
||||||
XDestroyWindowSrc = (PFN_XDestroyWindow)dlsym(XDL_module[0], "XDestroyWindow");
|
|
||||||
XDisplayKeycodesSrc = (PFN_XDisplayKeycodes)dlsym(XDL_module[0], "XDisplayKeycodes");
|
|
||||||
XEventsQueuedSrc = (PFN_XEventsQueued)dlsym(XDL_module[0], "XEventsQueued");
|
|
||||||
XFilterEventSrc = (PFN_XFilterEvent)dlsym(XDL_module[0], "XFilterEvent");
|
|
||||||
XFindContextSrc = (PFN_XFindContext)dlsym(XDL_module[0], "XFindContext");
|
|
||||||
XFlushSrc = (PFN_XFlush)dlsym(XDL_module[0], "XFlush");
|
|
||||||
XFreeSrc = (PFN_XFree)dlsym(XDL_module[0], "XFree");
|
|
||||||
XFreeColormapSrc = (PFN_XFreeColormap)dlsym(XDL_module[0], "XFreeColormap");
|
|
||||||
XFreeCursorSrc = (PFN_XFreeCursor)dlsym(XDL_module[0], "XFreeCursor");
|
|
||||||
XFreeEventDataSrc = (PFN_XFreeEventData)dlsym(XDL_module[0], "XFreeEventData");
|
|
||||||
XGetErrorTextSrc = (PFN_XGetErrorText)dlsym(XDL_module[0], "XGetErrorText");
|
|
||||||
XGetEventDataSrc = (PFN_XGetEventData)dlsym(XDL_module[0], "XGetEventData");
|
|
||||||
XGetICValuesSrc = (PFN_XGetICValues)dlsym(XDL_module[0], "XGetICValues");
|
|
||||||
XGetIMValuesSrc = (PFN_XGetIMValues)dlsym(XDL_module[0], "XGetIMValues");
|
|
||||||
XGetInputFocusSrc = (PFN_XGetInputFocus)dlsym(XDL_module[0], "XGetInputFocus");
|
|
||||||
XGetKeyboardMappingSrc = (PFN_XGetKeyboardMapping)dlsym(XDL_module[0], "XGetKeyboardMapping");
|
|
||||||
XGetScreenSaverSrc = (PFN_XGetScreenSaver)dlsym(XDL_module[0], "XGetScreenSaver");
|
|
||||||
XGetSelectionOwnerSrc = (PFN_XGetSelectionOwner)dlsym(XDL_module[0], "XGetSelectionOwner");
|
|
||||||
XGetVisualInfoSrc = (PFN_XGetVisualInfo)dlsym(XDL_module[0], "XGetVisualInfo");
|
|
||||||
XGetWMNormalHintsSrc = (PFN_XGetWMNormalHints)dlsym(XDL_module[0], "XGetWMNormalHints");
|
|
||||||
XGetWindowAttributesSrc = (PFN_XGetWindowAttributes)dlsym(XDL_module[0], "XGetWindowAttributes");
|
|
||||||
XGetWindowPropertySrc = (PFN_XGetWindowProperty)dlsym(XDL_module[0], "XGetWindowProperty");
|
|
||||||
XGrabPointerSrc = (PFN_XGrabPointer)dlsym(XDL_module[0], "XGrabPointer");
|
|
||||||
XIconifyWindowSrc = (PFN_XIconifyWindow)dlsym(XDL_module[0], "XIconifyWindow");
|
|
||||||
XInternAtomSrc = (PFN_XInternAtom)dlsym(XDL_module[0], "XInternAtom");
|
|
||||||
XLookupStringSrc = (PFN_XLookupString)dlsym(XDL_module[0], "XLookupString");
|
|
||||||
XMapRaisedSrc = (PFN_XMapRaised)dlsym(XDL_module[0], "XMapRaised");
|
|
||||||
XMapWindowSrc = (PFN_XMapWindow)dlsym(XDL_module[0], "XMapWindow");
|
|
||||||
XMoveResizeWindowSrc = (PFN_XMoveResizeWindow)dlsym(XDL_module[0], "XMoveResizeWindow");
|
|
||||||
XMoveWindowSrc = (PFN_XMoveWindow)dlsym(XDL_module[0], "XMoveWindow");
|
|
||||||
XNextEventSrc = (PFN_XNextEvent)dlsym(XDL_module[0], "XNextEvent");
|
|
||||||
XPeekEventSrc = (PFN_XPeekEvent)dlsym(XDL_module[0], "XPeekEvent");
|
|
||||||
XPendingSrc = (PFN_XPending)dlsym(XDL_module[0], "XPending");
|
|
||||||
XQueryExtensionSrc = (PFN_XQueryExtension)dlsym(XDL_module[0], "XQueryExtension");
|
|
||||||
XQueryPointerSrc = (PFN_XQueryPointer)dlsym(XDL_module[0], "XQueryPointer");
|
|
||||||
XRaiseWindowSrc = (PFN_XRaiseWindow)dlsym(XDL_module[0], "XRaiseWindow");
|
|
||||||
XRegisterIMInstantiateCallbackSrc = (PFN_XRegisterIMInstantiateCallback)dlsym(XDL_module[0], "XRegisterIMInstantiateCallback");
|
|
||||||
XResizeWindowSrc = (PFN_XResizeWindow)dlsym(XDL_module[0], "XResizeWindow");
|
|
||||||
XResourceManagerStringSrc = (PFN_XResourceManagerString)dlsym(XDL_module[0], "XResourceManagerString");
|
|
||||||
XSaveContextSrc = (PFN_XSaveContext)dlsym(XDL_module[0], "XSaveContext");
|
|
||||||
XSelectInputSrc = (PFN_XSelectInput)dlsym(XDL_module[0], "XSelectInput");
|
|
||||||
XSendEventSrc = (PFN_XSendEvent)dlsym(XDL_module[0], "XSendEvent");
|
|
||||||
XSetClassHintSrc = (PFN_XSetClassHint)dlsym(XDL_module[0], "XSetClassHint");
|
|
||||||
XSetErrorHandlerSrc = (PFN_XSetErrorHandler)dlsym(XDL_module[0], "XSetErrorHandler");
|
|
||||||
XSetICFocusSrc = (PFN_XSetICFocus)dlsym(XDL_module[0], "XSetICFocus");
|
|
||||||
XSetIMValuesSrc = (PFN_XSetIMValues)dlsym(XDL_module[0], "XSetIMValues");
|
|
||||||
XSetInputFocusSrc = (PFN_XSetInputFocus)dlsym(XDL_module[0], "XSetInputFocus");
|
|
||||||
XSetLocaleModifiersSrc = (PFN_XSetLocaleModifiers)dlsym(XDL_module[0], "XSetLocaleModifiers");
|
|
||||||
XSetScreenSaverSrc = (PFN_XSetScreenSaver)dlsym(XDL_module[0], "XSetScreenSaver");
|
|
||||||
XSetSelectionOwnerSrc = (PFN_XSetSelectionOwner)dlsym(XDL_module[0], "XSetSelectionOwner");
|
|
||||||
XSetWMHintsSrc = (PFN_XSetWMHints)dlsym(XDL_module[0], "XSetWMHints");
|
|
||||||
XSetWMNormalHintsSrc = (PFN_XSetWMNormalHints)dlsym(XDL_module[0], "XSetWMNormalHints");
|
|
||||||
XSetWMProtocolsSrc = (PFN_XSetWMProtocols)dlsym(XDL_module[0], "XSetWMProtocols");
|
|
||||||
XSupportsLocaleSrc = (PFN_XSupportsLocale)dlsym(XDL_module[0], "XSupportsLocale");
|
|
||||||
XSyncSrc = (PFN_XSync)dlsym(XDL_module[0], "XSync");
|
|
||||||
XTranslateCoordinatesSrc = (PFN_XTranslateCoordinates)dlsym(XDL_module[0], "XTranslateCoordinates");
|
|
||||||
XUndefineCursorSrc = (PFN_XUndefineCursor)dlsym(XDL_module[0], "XUndefineCursor");
|
|
||||||
XUngrabPointerSrc = (PFN_XUngrabPointer)dlsym(XDL_module[0], "XUngrabPointer");
|
|
||||||
XUnmapWindowSrc = (PFN_XUnmapWindow)dlsym(XDL_module[0], "XUnmapWindow");
|
|
||||||
XUnsetICFocusSrc = (PFN_XUnsetICFocus)dlsym(XDL_module[0], "XUnsetICFocus");
|
|
||||||
XVisualIDFromVisualSrc = (PFN_XVisualIDFromVisual)dlsym(XDL_module[0], "XVisualIDFromVisual");
|
|
||||||
XWarpPointerSrc = (PFN_XWarpPointer)dlsym(XDL_module[0], "XWarpPointer");
|
|
||||||
XStoreNameSrc = (PFN_XStoreName)dlsym(XDL_module[0], "XStoreName");
|
|
||||||
XSetWMSizeHintsSrc = (PFN_XSetWMSizeHints)dlsym(XDL_module[0], "XSetWMSizeHints");
|
|
||||||
XOpenDisplaySrc = (PFN_XOpenDisplay)dlsym(XDL_module[0], "XOpenDisplay");
|
|
||||||
XStringToKeysymSrc = (PFN_XStringToKeysym)dlsym(XDL_module[0], "XStringToKeysym");
|
|
||||||
XQueryKeymapSrc = (PFN_XQueryKeymap)dlsym(XDL_module[0], "XQueryKeymap");
|
|
||||||
XDL_PROC_DEF(0, XKeysymToString);
|
|
||||||
XDL_PROC_DEF(0, XInitThreads);
|
|
||||||
XDL_PROC_DEF(0, XkbKeycodeToKeysym);
|
|
||||||
XDL_PROC_DEF(0, XkbGetMap);
|
|
||||||
XDL_PROC_DEF(0, XkbGetNames);
|
|
||||||
XDL_PROC_DEF(0, XkbGetKeyboardByName);
|
|
||||||
XDL_PROC_DEF(0, XkbFreeKeyboard);
|
|
||||||
XDL_PROC_DEF(0, XGetAtomName);
|
|
||||||
XDL_PROC_DEF(0, XDefaultRootWindow);
|
|
||||||
XDL_PROC_DEF(0, XMatchVisualInfo);
|
|
||||||
XDL_PROC_DEF(0, XGetKeyboardControl);
|
|
||||||
XDL_PROC_DEF(0, XKeysymToKeycode);
|
|
||||||
XDL_PROC_DEF(0, XConnectionNumber);
|
|
||||||
XDL_PROC_DEF(0, XFreeColors);
|
|
||||||
XDL_PROC_DEF(0, XDisplayWidth);
|
|
||||||
XDL_PROC_DEF(0, XDisplayHeight);
|
|
||||||
XDL_PROC_DEF(0, XrmGetStringDatabase);
|
|
||||||
XDL_PROC_DEF(0, XrmGetResource);
|
|
||||||
XDL_PROC_DEF(0, XrmDestroyDatabase);
|
|
||||||
XDL_PROC_DEF(0, XDisplayName);
|
|
||||||
XDL_PROC_DEF(0, XkbGetState);
|
|
||||||
XDL_PROC_DEF(0, XWidthOfScreen);
|
|
||||||
XDL_PROC_DEF(0, XHeightOfScreen);
|
|
||||||
XDL_PROC_DEF(0, XCreateGC);
|
|
||||||
XDL_PROC_DEF(0, XFreeGC);
|
|
||||||
XDL_PROC_DEF(0, XCreateImage);
|
|
||||||
XDL_PROC_DEF(0, XCreatePixmap);
|
|
||||||
XDL_PROC_DEF(0, XPutImage);
|
|
||||||
|
|
||||||
#ifndef XDL_NO_XRANDR
|
|
||||||
XDL_PROC_DEF(2, XRRGetScreenResourcesCurrent);
|
|
||||||
XDL_PROC_DEF(2, XRRGetCrtcInfo);
|
|
||||||
XDL_PROC_DEF(2, XRRGetOutputInfo);
|
|
||||||
XDL_PROC_DEF(2, XRRFreeCrtcInfo);
|
|
||||||
XDL_PROC_DEF(2, XRRGetScreenResources);
|
|
||||||
XDL_PROC_DEF(2, XRRFreeScreenResources);
|
|
||||||
XDL_PROC_DEF(2, XRRFreeOutputInfo);
|
|
||||||
XDL_PROC_DEF(2, XRRSetScreenConfig);
|
|
||||||
XDL_PROC_DEF(2, XRRSetCrtcConfig);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef XDL_NO_GLX
|
|
||||||
XDL_PROC_DEF(1, glXChooseVisual);
|
|
||||||
XDL_PROC_DEF(1, glXCreateContext);
|
|
||||||
XDL_PROC_DEF(1, glXMakeCurrent);
|
|
||||||
XDL_PROC_DEF(1, glXGetCurrentContext);
|
|
||||||
XDL_PROC_DEF(1, glXSwapBuffers);
|
|
||||||
XDL_PROC_DEF(1, glXSwapIntervalEXT);
|
|
||||||
XDL_PROC_DEF(1, glXGetProcAddress);
|
|
||||||
XDL_PROC_DEF(1, glXGetVisualFromFBConfig);
|
|
||||||
XDL_PROC_DEF(1, glXGetFBConfigAttrib);
|
|
||||||
XDL_PROC_DEF(1, glXGetProcAddressARB);
|
|
||||||
XDL_PROC_DEF(1, glXChooseFBConfig);
|
|
||||||
XDL_PROC_DEF(1, glXDestroyContext);
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
void XDL_close(void) {
|
|
||||||
if (XDL_module[0] != NULL) {
|
|
||||||
/* close the modules and free their data */
|
|
||||||
dlclose(XDL_module[0]);
|
|
||||||
XDL_module[0] = NULL;
|
|
||||||
|
|
||||||
#ifndef XDL_NO_GLX
|
|
||||||
dlclose(XDL_module[1]);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef XDL_NO_XRANDR
|
|
||||||
dlclose(XDL_module[2]);
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue