Use correct Xinerama APIs for querying version and availability.
Fixes Bugzilla #1314.
2 Simple DirectMedia Layer
3 Copyright (C) 1997-2011 Sam Lantinga <slouken@libsdl.org>
5 This software is provided 'as-is', without any express or implied
6 warranty. In no event will the authors be held liable for any damages
7 arising from the use of this software.
9 Permission is granted to anyone to use this software for any purpose,
10 including commercial applications, and to alter it and redistribute it
11 freely, subject to the following restrictions:
13 1. The origin of this software must not be misrepresented; you must not
14 claim that you wrote the original software. If you use this software
15 in a product, an acknowledgment in the product documentation would be
16 appreciated but is not required.
17 2. Altered source versions must be plainly marked as such, and must not be
18 misrepresented as being the original software.
19 3. This notice may not be removed or altered from any source distribution.
24 SDL_X11_MODULE(BASEXLIB)
25 SDL_X11_SYM(XClassHint*,XAllocClassHint,(void),(),return)
26 SDL_X11_SYM(XSizeHints*,XAllocSizeHints,(void),(),return)
27 SDL_X11_SYM(XWMHints*,XAllocWMHints,(void),(),return)
28 SDL_X11_SYM(int,XAutoRepeatOn,(Display* a),(a),return)
29 SDL_X11_SYM(int,XAutoRepeatOff,(Display* a),(a),return)
30 SDL_X11_SYM(int,XChangePointerControl,(Display* a,Bool b,Bool c,int d,int e,int f),(a,b,c,d,e,f),return)
31 SDL_X11_SYM(int,XChangeProperty,(Display* a,Window b,Atom c,Atom d,int e,int f,_Xconst unsigned char* g,int h),(a,b,c,d,e,f,g,h),return)
32 SDL_X11_SYM(int,XCloseDisplay,(Display* a),(a),return)
33 SDL_X11_SYM(int,XConvertSelection,(Display* a,Atom b,Atom c,Atom d,Window e,Time f),(a,b,c,d,e,f),return)
34 SDL_X11_SYM(Pixmap,XCreateBitmapFromData,(Display *dpy,Drawable d,_Xconst char *data,unsigned int width,unsigned int height),(dpy,d,data,width,height),return)
35 SDL_X11_SYM(Colormap,XCreateColormap,(Display* a,Window b,Visual* c,int d),(a,b,c,d),return)
36 SDL_X11_SYM(Cursor,XCreatePixmapCursor,(Display* a,Pixmap b,Pixmap c,XColor* d,XColor* e,unsigned int f,unsigned int g),(a,b,c,d,e,f,g),return)
37 SDL_X11_SYM(GC,XCreateGC,(Display* a,Drawable b,unsigned long c,XGCValues* d),(a,b,c,d),return)
38 SDL_X11_SYM(XImage*,XCreateImage,(Display* a,Visual* b,unsigned int c,int d,int e,char* f,unsigned int g,unsigned int h,int i,int j),(a,b,c,d,e,f,g,h,i,j),return)
39 SDL_X11_SYM(Window,XCreateWindow,(Display* a,Window b,int c,int d,unsigned int e,unsigned int f,unsigned int g,int h,unsigned int i,Visual* j,unsigned long k,XSetWindowAttributes* l),(a,b,c,d,e,f,g,h,i,j,k,l),return)
40 SDL_X11_SYM(int,XDefineCursor,(Display* a,Window b,Cursor c),(a,b,c),return)
41 SDL_X11_SYM(int,XDeleteProperty,(Display* a,Window b,Atom c),(a,b,c),return)
42 SDL_X11_SYM(int,XDestroyWindow,(Display* a,Window b),(a,b),return)
43 SDL_X11_SYM(int,XDisplayKeycodes,(Display* a,int* b,int* c),(a,b,c),return)
44 SDL_X11_SYM(char*,XDisplayName,(_Xconst char* a),(a),return)
45 SDL_X11_SYM(int,XEventsQueued,(Display* a,int b),(a,b),return)
46 SDL_X11_SYM(Bool,XFilterEvent,(XEvent *event,Window w),(event,w),return)
47 SDL_X11_SYM(int,XFlush,(Display* a),(a),return)
48 SDL_X11_SYM(int,XFree,(void*a),(a),return)
49 SDL_X11_SYM(int,XFreeCursor,(Display* a,Cursor b),(a,b),return)
50 SDL_X11_SYM(int,XFreeGC,(Display* a,GC b),(a,b),return)
51 SDL_X11_SYM(int,XFreeModifiermap,(XModifierKeymap* a),(a),return)
52 SDL_X11_SYM(int,XFreePixmap,(Display* a,Pixmap b),(a,b),return)
53 SDL_X11_SYM(char*,XGetAtomName,(Display *a,Atom b),(a,b),return)
54 SDL_X11_SYM(int,XGetInputFocus,(Display *a,Window *b,int *c),(a,b,c),return)
55 SDL_X11_SYM(int,XGetErrorDatabaseText,(Display* a,_Xconst char* b,_Xconst char* c,_Xconst char* d,char* e,int f),(a,b,c,d,e,f),return)
56 SDL_X11_SYM(XModifierKeymap*,XGetModifierMapping,(Display* a),(a),return)
57 SDL_X11_SYM(int,XGetPointerControl,(Display* a,int* b,int* c,int* d),(a,b,c,d),return)
58 SDL_X11_SYM(Window,XGetSelectionOwner,(Display* a,Atom b),(a,b),return)
59 SDL_X11_SYM(XVisualInfo*,XGetVisualInfo,(Display* a,long b,XVisualInfo* c,int* d),(a,b,c,d),return)
60 SDL_X11_SYM(Status,XGetWindowAttributes,(Display* a,Window b,XWindowAttributes* c),(a,b,c),return)
61 SDL_X11_SYM(int,XGetWindowProperty,(Display* a,Window b,Atom c,long d,long e,Bool f,Atom g,Atom* h,int* i,unsigned long* j,unsigned long *k,unsigned char **l),(a,b,c,d,e,f,g,h,i,j,k,l),return)
62 SDL_X11_SYM(XWMHints*,XGetWMHints,(Display* a,Window b),(a,b),return)
63 SDL_X11_SYM(Status,XGetWMNormalHints,(Display *a,Window b, XSizeHints *c, long *d),(a,b,c,d),return)
64 SDL_X11_SYM(int,XGrabKeyboard,(Display* a,Window b,Bool c,int d,int e,Time f),(a,b,c,d,e,f),return)
65 SDL_X11_SYM(int,XGrabPointer,(Display* a,Window b,Bool c,unsigned int d,int e,int f,Window g,Cursor h,Time i),(a,b,c,d,e,f,g,h,i),return)
66 SDL_X11_SYM(int,XGrabServer,(Display* a),(a),return)
67 SDL_X11_SYM(Status,XIconifyWindow,(Display* a,Window b,int c),(a,b,c),return)
68 SDL_X11_SYM(KeyCode,XKeysymToKeycode,(Display* a,KeySym b),(a,b),return)
69 SDL_X11_SYM(char*,XKeysymToString,(KeySym a),(a),return)
70 SDL_X11_SYM(Atom,XInternAtom,(Display* a,_Xconst char* b,Bool c),(a,b,c),return)
71 SDL_X11_SYM(XPixmapFormatValues*,XListPixmapFormats,(Display* a,int* b),(a,b),return)
72 SDL_X11_SYM(KeySym,XLookupKeysym,(XKeyEvent* a,int b),(a,b),return)
73 SDL_X11_SYM(int,XLookupString,(XKeyEvent* a,char* b,int c,KeySym* d,XComposeStatus* e),(a,b,c,d,e),return)
74 SDL_X11_SYM(int,XMapRaised,(Display* a,Window b),(a,b),return)
75 SDL_X11_SYM(Status,XMatchVisualInfo,(Display* a,int b,int c,int d,XVisualInfo* e),(a,b,c,d,e),return)
76 SDL_X11_SYM(int,XMissingExtension,(Display* a,_Xconst char* b),(a,b),return)
77 SDL_X11_SYM(int,XMoveWindow,(Display* a,Window b,int c,int d),(a,b,c,d),return)
78 SDL_X11_SYM(int,XNextEvent,(Display* a,XEvent* b),(a,b),return)
79 SDL_X11_SYM(Display*,XOpenDisplay,(_Xconst char* a),(a),return)
80 SDL_X11_SYM(int,XPeekEvent,(Display* a,XEvent* b),(a,b),return)
81 SDL_X11_SYM(int,XPending,(Display* a),(a),return)
82 SDL_X11_SYM(int,XPutImage,(Display* a,Drawable b,GC c,XImage* d,int e,int f,int g,int h,unsigned int i,unsigned int j),(a,b,c,d,e,f,g,h,i,j),return)
83 SDL_X11_SYM(int,XQueryKeymap,(Display* a,char *b),(a,b),return)
84 SDL_X11_SYM(Bool,XQueryPointer,(Display* a,Window b,Window* c,Window* d,int* e,int* f,int* g,int* h,unsigned int* i),(a,b,c,d,e,f,g,h,i),return)
85 SDL_X11_SYM(int,XRaiseWindow,(Display* a,Window b),(a,b),return)
86 SDL_X11_SYM(int,XResetScreenSaver,(Display* a),(a),return)
87 SDL_X11_SYM(int,XResizeWindow,(Display* a,Window b,unsigned int c,unsigned int d),(a,b,c,d),return)
88 SDL_X11_SYM(int,XSelectInput,(Display* a,Window b,long c),(a,b,c),return)
89 SDL_X11_SYM(Status,XSendEvent,(Display* a,Window b,Bool c,long d,XEvent* e),(a,b,c,d,e),return)
90 SDL_X11_SYM(int,XSetClassHint,(Display* a,Window b,XClassHint* c),(a,b,c),return)
91 SDL_X11_SYM(XErrorHandler,XSetErrorHandler,(XErrorHandler a),(a),return)
92 SDL_X11_SYM(XIOErrorHandler,XSetIOErrorHandler,(XIOErrorHandler a),(a),return)
93 SDL_X11_SYM(int,XSetSelectionOwner,(Display* a,Atom b,Window c,Time d),(a,b,c,d),return)
94 SDL_X11_SYM(int,XSetTransientForHint,(Display* a,Window b,Window c),(a,b,c),return)
95 SDL_X11_SYM(void,XSetTextProperty,(Display* a,Window b,XTextProperty* c,Atom d),(a,b,c,d),)
96 SDL_X11_SYM(int,XSetWMHints,(Display* a,Window b,XWMHints* c),(a,b,c),return)
97 SDL_X11_SYM(void,XSetWMNormalHints,(Display* a,Window b,XSizeHints* c),(a,b,c),)
98 SDL_X11_SYM(Status,XSetWMProtocols,(Display* a,Window b,Atom* c,int d),(a,b,c,d),return)
99 SDL_X11_SYM(int,XStoreColors,(Display* a,Colormap b,XColor* c,int d),(a,b,c,d),return)
100 SDL_X11_SYM(Status,XStringListToTextProperty,(char** a,int b,XTextProperty* c),(a,b,c),return)
101 SDL_X11_SYM(int,XSync,(Display* a,Bool b),(a,b),return)
102 SDL_X11_SYM(int,XUndefineCursor,(Display* a,Window b),(a,b),return)
103 SDL_X11_SYM(int,XUngrabKeyboard,(Display* a,Time b),(a,b),return)
104 SDL_X11_SYM(int,XUngrabPointer,(Display* a,Time b),(a,b),return)
105 SDL_X11_SYM(int,XUngrabServer,(Display* a),(a),return)
106 SDL_X11_SYM(int,XUnmapWindow,(Display* a,Window b),(a,b),return)
107 SDL_X11_SYM(int,XWarpPointer,(Display* a,Window b,Window c,int d,int e,unsigned int f,unsigned int g,int h,int i),(a,b,c,d,e,f,g,h,i),return)
108 SDL_X11_SYM(VisualID,XVisualIDFromVisual,(Visual* a),(a),return)
109 SDL_X11_SYM(XExtDisplayInfo*,XextAddDisplay,(XExtensionInfo* a,Display* b,char* c,XExtensionHooks* d,int e,XPointer f),(a,b,c,d,e,f),return)
110 SDL_X11_SYM(XExtensionInfo*,XextCreateExtension,(void),(),return)
111 SDL_X11_SYM(void,XextDestroyExtension,(XExtensionInfo* a),(a),)
112 SDL_X11_SYM(XExtDisplayInfo*,XextFindDisplay,(XExtensionInfo* a,Display* b),(a,b),return)
113 SDL_X11_SYM(int,XextRemoveDisplay,(XExtensionInfo* a,Display* b),(a,b),return)
114 SDL_X11_SYM(Bool,XQueryExtension,(Display* a,_Xconst char* b,int* c,int* d,int* e),(a,b,c,d,e),return)
115 SDL_X11_SYM(char *,XDisplayString,(Display* a),(a),return)
116 SDL_X11_SYM(int,XGetErrorText,(Display* a,int b,char* c,int d),(a,b,c,d),return)
117 SDL_X11_SYM(void,_XEatData,(Display* a,unsigned long b),(a,b),)
118 SDL_X11_SYM(void,_XFlush,(Display* a),(a),)
119 SDL_X11_SYM(void,_XFlushGCCache,(Display* a,GC b),(a,b),)
120 SDL_X11_SYM(int,_XRead,(Display* a,char* b,long c),(a,b,c),return)
121 SDL_X11_SYM(void,_XReadPad,(Display* a,char* b,long c),(a,b,c),)
122 SDL_X11_SYM(void,_XSend,(Display* a,_Xconst char* b,long c),(a,b,c),)
123 SDL_X11_SYM(Status,_XReply,(Display* a,xReply* b,int c,Bool d),(a,b,c,d),return)
124 SDL_X11_SYM(unsigned long,_XSetLastRequestRead,(Display* a,xGenericReply* b),(a,b),return)
125 SDL_X11_SYM(SDL_X11_XSynchronizeRetType,XSynchronize,(Display* a,Bool b),(a,b),return)
126 SDL_X11_SYM(SDL_X11_XESetWireToEventRetType,XESetWireToEvent,(Display* a,int b,SDL_X11_XESetWireToEventRetType c),(a,b,c),return)
127 SDL_X11_SYM(SDL_X11_XESetEventToWireRetType,XESetEventToWire,(Display* a,int b,SDL_X11_XESetEventToWireRetType c),(a,b,c),return)
129 #if NeedWidePrototypes
130 SDL_X11_SYM(KeySym,XKeycodeToKeysym,(Display* a,unsigned int b,int c),(a,b,c),return)
132 SDL_X11_SYM(KeySym,XKeycodeToKeysym,(Display* a,KeyCode b,int c),(a,b,c),return)
135 #ifdef X_HAVE_UTF8_STRING
137 SDL_X11_SYM(int,Xutf8TextListToTextProperty,(Display* a,char** b,int c,XICCEncodingStyle d,XTextProperty* e),(a,b,c,d,e),return)
138 SDL_X11_SYM(int,Xutf8LookupString,(XIC a,XKeyPressedEvent* b,char* c,int d,KeySym* e,Status* f),(a,b,c,d,e,f),return)
139 /*SDL_X11_SYM(XIC,XCreateIC,(XIM, ...),return) !!! ARGH! */
140 SDL_X11_SYM(void,XDestroyIC,(XIC a),(a),)
141 /*SDL_X11_SYM(char*,XGetICValues,(XIC, ...),return) !!! ARGH! */
142 SDL_X11_SYM(void,XSetICFocus,(XIC a),(a),)
143 SDL_X11_SYM(void,XUnsetICFocus,(XIC a),(a),)
144 SDL_X11_SYM(XIM,XOpenIM,(Display* a,struct _XrmHashBucketRec* b,char* c,char* d),(a,b,c,d),return)
145 SDL_X11_SYM(Status,XCloseIM,(XIM a),(a),return)
148 #ifndef NO_SHARED_MEMORY
150 SDL_X11_SYM(Status,XShmAttach,(Display* a,XShmSegmentInfo* b),(a,b),return)
151 SDL_X11_SYM(Status,XShmDetach,(Display* a,XShmSegmentInfo* b),(a,b),return)
152 SDL_X11_SYM(Status,XShmPutImage,(Display* a,Drawable b,GC c,XImage* d,int e,int f,int g,int h,unsigned int i,unsigned int j,Bool k),(a,b,c,d,e,f,g,h,i,j,k),return)
153 SDL_X11_SYM(XImage*,XShmCreateImage,(Display* a,Visual* b,unsigned int c,int d,char* e,XShmSegmentInfo* f,unsigned int g,unsigned int h),(a,b,c,d,e,f,g,h),return)
154 SDL_X11_SYM(Pixmap,XShmCreatePixmap,(Display *a,Drawable b,char* c,XShmSegmentInfo* d, unsigned int e, unsigned int f, unsigned int g),(a,b,c,d,e,f,g),return)
155 SDL_X11_SYM(Bool,XShmQueryExtension,(Display* a),(a),return)
159 * Not required...these only exist in code in headers on some 64-bit platforms,
160 * and are removed via macros elsewhere, so it's safe for them to be missing.
163 SDL_X11_MODULE(IO_32BIT)
164 SDL_X11_SYM(int,_XData32,(Display *dpy,register long *data,unsigned len),(dpy,data,len),return)
165 SDL_X11_SYM(void,_XRead32,(Display *dpy,register long *data,long len),(dpy,data,len),)
169 * These only show up on some variants of Unix.
172 SDL_X11_MODULE(OSF_ENTRY_POINTS)
173 SDL_X11_SYM(void,_SmtBufferOverflow,(Display *dpy,register smtDisplayPtr p),(dpy,p),)
174 SDL_X11_SYM(void,_SmtIpError,(Display *dpy,register smtDisplayPtr p,int i),(dpy,p,i),)
175 SDL_X11_SYM(int,ipAllocateData,(ChannelPtr a,IPCard b,IPDataPtr * c),(a,b,c),return)
176 SDL_X11_SYM(int,ipUnallocateAndSendData,(ChannelPtr a,IPCard b),(a,b),return)
179 /* XCursor support */
180 #if SDL_VIDEO_DRIVER_X11_XCURSOR
181 SDL_X11_MODULE(XCURSOR)
182 SDL_X11_SYM(XcursorImage*,XcursorImageCreate,(int a,int b),(a,b),return)
183 SDL_X11_SYM(void,XcursorImageDestroy,(XcursorImage *a),(a),)
184 SDL_X11_SYM(Cursor,XcursorImageLoadCursor,(Display *a,const XcursorImage *b),(a,b),return)
187 /* Xinerama support */
188 #if SDL_VIDEO_DRIVER_X11_XINERAMA
189 SDL_X11_MODULE(XINERAMA)
190 SDL_X11_SYM(Bool,XineramaIsActive,(Display *a),(a),return)
191 SDL_X11_SYM(Bool,XineramaQueryExtension,(Display *a,int *b,int *c),(a,b,c),return)
192 SDL_X11_SYM(Status,XineramaQueryVersion,(Display *a,int *b,int *c),(a,b,c),return)
193 SDL_X11_SYM(XineramaScreenInfo*,XineramaQueryScreens,(Display *a, int *b),(a,b),return)
196 /* XInput support for multiple mice, tablets, etc. */
197 #if SDL_VIDEO_DRIVER_X11_XINPUT
198 SDL_X11_MODULE(XINPUT)
199 SDL_X11_SYM(XDeviceInfo*,XListInputDevices,(Display *a,int *b),(a,b),return)
200 SDL_X11_SYM(void,XFreeDeviceList,(XDeviceInfo *a),(a),)
201 SDL_X11_SYM(int,XSelectExtensionEvent,(Display *a,Window b,XEventClass *c,int d),(a,b,c,d),return)
202 SDL_X11_SYM(XDevice*,XOpenDevice,(Display *a,XID b),(a,b),return)
203 SDL_X11_SYM(int,XCloseDevice,(Display* a,XDevice* b),(a,b),return)
207 #if SDL_VIDEO_DRIVER_X11_XRANDR
208 SDL_X11_MODULE(XRANDR)
209 SDL_X11_SYM(Status,XRRQueryVersion,(Display *dpy,int *major_versionp,int *minor_versionp),(dpy,major_versionp,minor_versionp),return)
210 SDL_X11_SYM(XRRScreenConfiguration *,XRRGetScreenInfo,(Display *dpy,Drawable draw),(dpy,draw),return)
211 SDL_X11_SYM(SizeID,XRRConfigCurrentConfiguration,(XRRScreenConfiguration *config,Rotation *rotation),(config,rotation),return)
212 SDL_X11_SYM(short,XRRConfigCurrentRate,(XRRScreenConfiguration *config),(config),return)
213 SDL_X11_SYM(short *,XRRConfigRates,(XRRScreenConfiguration *config,int sizeID,int *nrates),(config,sizeID,nrates),return)
214 SDL_X11_SYM(XRRScreenSize *,XRRConfigSizes,(XRRScreenConfiguration *config,int *nsizes),(config,nsizes),return)
215 SDL_X11_SYM(Status,XRRSetScreenConfigAndRate,(Display *dpy,XRRScreenConfiguration *config,Drawable draw,int size_index,Rotation rotation,short rate,Time timestamp),(dpy,config,draw,size_index,rotation,rate,timestamp),return)
216 SDL_X11_SYM(void,XRRFreeScreenConfigInfo,(XRRScreenConfiguration *config),(config),)
219 /* MIT-SCREEN-SAVER support */
220 #if SDL_VIDEO_DRIVER_X11_XSCRNSAVER
222 SDL_X11_SYM(Bool,XScreenSaverQueryExtension,(Display *dpy,int *event_base,int *error_base),(dpy,event_base,error_base),return)
223 SDL_X11_SYM(Status,XScreenSaverQueryVersion,(Display *dpy,int *major_versionp,int *minor_versionp),(dpy,major_versionp,minor_versionp),return)
224 SDL_X11_SYM(void,XScreenSaverSuspend,(Display *dpy,Bool suspend),(dpy,suspend),return)
227 #if SDL_VIDEO_DRIVER_X11_XSHAPE
228 SDL_X11_MODULE(XSHAPE)
229 SDL_X11_SYM(void,XShapeCombineMask,(Display *dpy,Window dest,int dest_kind,int x_off,int y_off,Pixmap src,int op),(dpy,dest,dest_kind,x_off,y_off,src,op),)
232 #if SDL_VIDEO_DRIVER_X11_XVIDMODE
233 SDL_X11_MODULE(XVIDMODE)
234 SDL_X11_SYM(Bool,XF86VidModeGetAllModeLines,(Display *a,int b,int *c,XF86VidModeModeInfo ***d),(a,b,c,d),return)
235 SDL_X11_SYM(Bool,XF86VidModeGetModeLine,(Display *a,int b,int *c,XF86VidModeModeLine *d),(a,b,c,d),return)
236 SDL_X11_SYM(Bool,XF86VidModeGetViewPort,(Display *a,int b,int *c,int *d),(a,b,c,d),return)
237 SDL_X11_SYM(Bool,XF86VidModeQueryExtension,(Display *a,int *b,int *c),(a,b,c),return)
238 SDL_X11_SYM(Bool,XF86VidModeQueryVersion,(Display *a,int *b,int *c),(a,b,c),return)
239 SDL_X11_SYM(Bool,XF86VidModeSwitchToMode,(Display *a,int b,XF86VidModeModeInfo *c),(a,b,c),return)
244 /* vi: set ts=4 sw=4 expandtab: */