src/video/x11/SDL_x11sym.h
author Sam Lantinga <slouken@libsdl.org>
Tue, 05 Sep 2017 08:24:38 -0700
changeset 11454 f6b9e7bd038a
parent 10737 3406a0f8b041
child 11811 5d94cb6b24d3
permissions -rw-r--r--
Fixed bug 3273 - Fix for slow video subsystem initialization when using XRandR.

Martín Golini

I'm having a very slow initialization of the video subsystem that locks the window creation for about 500 ms ( tested in at least 4 different systems ). What i found is that X11_InitModes_XRandR is using XRRGetScreenResources, that explicitly ask to poll the hardware for changes. This is not really necessary since if the data is already available you can use XRRGetScreenResourcesCurrent.
I attached a tentative patch that fix this issue. With the patch there's no lock when the subsystem is initialized and the window creation is instant in my applications. The patch only uses XRRGetScreenResourcesCurrent in X11_InitModes_XRandR but it could be potentially used in X11_GetDisplayModes and X11_SetDisplayMode.
slouken@1950
     1
/*
slouken@5535
     2
  Simple DirectMedia Layer
slouken@10737
     3
  Copyright (C) 1997-2017 Sam Lantinga <slouken@libsdl.org>
slouken@1950
     4
slouken@5535
     5
  This software is provided 'as-is', without any express or implied
slouken@5535
     6
  warranty.  In no event will the authors be held liable for any damages
slouken@5535
     7
  arising from the use of this software.
slouken@1950
     8
slouken@5535
     9
  Permission is granted to anyone to use this software for any purpose,
slouken@5535
    10
  including commercial applications, and to alter it and redistribute it
slouken@5535
    11
  freely, subject to the following restrictions:
slouken@1950
    12
slouken@5535
    13
  1. The origin of this software must not be misrepresented; you must not
slouken@5535
    14
     claim that you wrote the original software. If you use this software
slouken@5535
    15
     in a product, an acknowledgment in the product documentation would be
slouken@5535
    16
     appreciated but is not required.
slouken@5535
    17
  2. Altered source versions must be plainly marked as such, and must not be
slouken@5535
    18
     misrepresented as being the original software.
slouken@5535
    19
  3. This notice may not be removed or altered from any source distribution.
slouken@1950
    20
*/
slouken@1950
    21
slouken@1952
    22
/* *INDENT-OFF* */
slouken@1952
    23
icculus@10079
    24
#ifndef SDL_X11_MODULE
icculus@10079
    25
#define SDL_X11_MODULE(modname)
icculus@10079
    26
#endif
icculus@10079
    27
icculus@10079
    28
#ifndef SDL_X11_SYM
icculus@10079
    29
#define SDL_X11_SYM(rc,fn,params,args,ret)
icculus@10079
    30
#endif
icculus@10079
    31
slouken@1950
    32
SDL_X11_MODULE(BASEXLIB)
slouken@1952
    33
SDL_X11_SYM(XSizeHints*,XAllocSizeHints,(void),(),return)
urkle@6462
    34
SDL_X11_SYM(XWMHints*,XAllocWMHints,(void),(),return)
urkle@6462
    35
SDL_X11_SYM(XClassHint*,XAllocClassHint,(void),(),return)
bob@2299
    36
SDL_X11_SYM(int,XAutoRepeatOn,(Display* a),(a),return)
bob@2299
    37
SDL_X11_SYM(int,XAutoRepeatOff,(Display* a),(a),return)
slouken@1952
    38
SDL_X11_SYM(int,XChangePointerControl,(Display* a,Bool b,Bool c,int d,int e,int f),(a,b,c,d,e,f),return)
slouken@1952
    39
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)
icculus@6422
    40
SDL_X11_SYM(Bool,XCheckIfEvent,(Display* a,XEvent *b,Bool (*c)(Display*,XEvent*,XPointer),XPointer d),(a,b,c,d),return)
icculus@6467
    41
SDL_X11_SYM(int,XClearWindow,(Display* a,Window b),(a,b),return)
slouken@1952
    42
SDL_X11_SYM(int,XCloseDisplay,(Display* a),(a),return)
slouken@4508
    43
SDL_X11_SYM(int,XConvertSelection,(Display* a,Atom b,Atom c,Atom d,Window e,Time f),(a,b,c,d,e,f),return)
slouken@4862
    44
SDL_X11_SYM(Pixmap,XCreateBitmapFromData,(Display *dpy,Drawable d,_Xconst char *data,unsigned int width,unsigned int height),(dpy,d,data,width,height),return)
slouken@1952
    45
SDL_X11_SYM(Colormap,XCreateColormap,(Display* a,Window b,Visual* c,int d),(a,b,c,d),return)
slouken@1952
    46
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)
mikesart@6675
    47
SDL_X11_SYM(Cursor,XCreateFontCursor,(Display* a,unsigned int b),(a,b),return)
icculus@6723
    48
SDL_X11_SYM(XFontSet,XCreateFontSet,(Display* a, _Xconst char* b, char*** c, int* d, char**	e),(a,b,c,d,e),return)
slouken@1952
    49
SDL_X11_SYM(GC,XCreateGC,(Display* a,Drawable b,unsigned long c,XGCValues* d),(a,b,c,d),return)
slouken@1952
    50
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)
slouken@1952
    51
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)
slouken@1952
    52
SDL_X11_SYM(int,XDefineCursor,(Display* a,Window b,Cursor c),(a,b,c),return)
slouken@1952
    53
SDL_X11_SYM(int,XDeleteProperty,(Display* a,Window b,Atom c),(a,b,c),return)
slouken@1952
    54
SDL_X11_SYM(int,XDestroyWindow,(Display* a,Window b),(a,b),return)
slouken@2305
    55
SDL_X11_SYM(int,XDisplayKeycodes,(Display* a,int* b,int* c),(a,b,c),return)
slouken@6602
    56
SDL_X11_SYM(int,XDrawRectangle,(Display* a,Drawable b,GC c,int d,int e,unsigned int f,unsigned int g),(a,b,c,d,e,f,g),return)
slouken@1952
    57
SDL_X11_SYM(char*,XDisplayName,(_Xconst char* a),(a),return)
slouken@6602
    58
SDL_X11_SYM(int,XDrawString,(Display* a,Drawable b,GC c,int d,int e,_Xconst char* f,int g),(a,b,c,d,e,f,g),return)
slouken@1952
    59
SDL_X11_SYM(int,XEventsQueued,(Display* a,int b),(a,b),return)
slouken@6602
    60
SDL_X11_SYM(int,XFillRectangle,(Display* a,Drawable b,GC c,int d,int e,unsigned int f,unsigned int g),(a,b,c,d,e,f,g),return)
bob@2185
    61
SDL_X11_SYM(Bool,XFilterEvent,(XEvent *event,Window w),(event,w),return)
slouken@1952
    62
SDL_X11_SYM(int,XFlush,(Display* a),(a),return)
slouken@1952
    63
SDL_X11_SYM(int,XFree,(void*a),(a),return)
slouken@1952
    64
SDL_X11_SYM(int,XFreeCursor,(Display* a,Cursor b),(a,b),return)
icculus@6723
    65
SDL_X11_SYM(void,XFreeFontSet,(Display* a, XFontSet b),(a,b),)
slouken@1952
    66
SDL_X11_SYM(int,XFreeGC,(Display* a,GC b),(a,b),return)
icculus@6723
    67
SDL_X11_SYM(int,XFreeFont,(Display* a, XFontStruct* b),(a,b),return)
slouken@1952
    68
SDL_X11_SYM(int,XFreeModifiermap,(XModifierKeymap* a),(a),return)
slouken@1952
    69
SDL_X11_SYM(int,XFreePixmap,(Display* a,Pixmap b),(a,b),return)
icculus@6723
    70
SDL_X11_SYM(void,XFreeStringList,(char** a),(a),)
slouken@4518
    71
SDL_X11_SYM(char*,XGetAtomName,(Display *a,Atom b),(a,b),return)
icculus@6025
    72
SDL_X11_SYM(int,XGetInputFocus,(Display *a,Window *b,int *c),(a,b,c),return)
slouken@1952
    73
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)
slouken@1952
    74
SDL_X11_SYM(XModifierKeymap*,XGetModifierMapping,(Display* a),(a),return)
slouken@1952
    75
SDL_X11_SYM(int,XGetPointerControl,(Display* a,int* b,int* c,int* d),(a,b,c,d),return)
slouken@4508
    76
SDL_X11_SYM(Window,XGetSelectionOwner,(Display* a,Atom b),(a,b),return)
slouken@1952
    77
SDL_X11_SYM(XVisualInfo*,XGetVisualInfo,(Display* a,long b,XVisualInfo* c,int* d),(a,b,c,d),return)
slouken@1952
    78
SDL_X11_SYM(Status,XGetWindowAttributes,(Display* a,Window b,XWindowAttributes* c),(a,b,c),return)
slouken@3077
    79
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)
slouken@4508
    80
SDL_X11_SYM(XWMHints*,XGetWMHints,(Display* a,Window b),(a,b),return)
slouken@5534
    81
SDL_X11_SYM(Status,XGetWMNormalHints,(Display *a,Window b, XSizeHints *c, long *d),(a,b,c,d),return)
slouken@6336
    82
SDL_X11_SYM(int,XIfEvent,(Display* a,XEvent *b,Bool (*c)(Display*,XEvent*,XPointer),XPointer d),(a,b,c,d),return)
slouken@1952
    83
SDL_X11_SYM(int,XGrabKeyboard,(Display* a,Window b,Bool c,int d,int e,Time f),(a,b,c,d,e,f),return)
slouken@1952
    84
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)
bob@2185
    85
SDL_X11_SYM(int,XGrabServer,(Display* a),(a),return)
slouken@1952
    86
SDL_X11_SYM(Status,XIconifyWindow,(Display* a,Window b,int c),(a,b,c),return)
slouken@1952
    87
SDL_X11_SYM(KeyCode,XKeysymToKeycode,(Display* a,KeySym b),(a,b),return)
slouken@2305
    88
SDL_X11_SYM(char*,XKeysymToString,(KeySym a),(a),return)
icculus@6467
    89
SDL_X11_SYM(int,XInstallColormap,(Display* a,Colormap b),(a,b),return)
slouken@1952
    90
SDL_X11_SYM(Atom,XInternAtom,(Display* a,_Xconst char* b,Bool c),(a,b,c),return)
slouken@1952
    91
SDL_X11_SYM(XPixmapFormatValues*,XListPixmapFormats,(Display* a,int* b),(a,b),return)
icculus@6723
    92
SDL_X11_SYM(XFontStruct*,XLoadQueryFont,(Display* a,_Xconst char* b),(a,b),return)
bob@2300
    93
SDL_X11_SYM(KeySym,XLookupKeysym,(XKeyEvent* a,int b),(a,b),return)
slouken@1952
    94
SDL_X11_SYM(int,XLookupString,(XKeyEvent* a,char* b,int c,KeySym* d,XComposeStatus* e),(a,b,c,d,e),return)
slouken@1952
    95
SDL_X11_SYM(int,XMapRaised,(Display* a,Window b),(a,b),return)
slouken@1952
    96
SDL_X11_SYM(Status,XMatchVisualInfo,(Display* a,int b,int c,int d,XVisualInfo* e),(a,b,c,d,e),return)
slouken@1952
    97
SDL_X11_SYM(int,XMissingExtension,(Display* a,_Xconst char* b),(a,b),return)
slouken@1952
    98
SDL_X11_SYM(int,XMoveWindow,(Display* a,Window b,int c,int d),(a,b,c,d),return)
slouken@1952
    99
SDL_X11_SYM(int,XNextEvent,(Display* a,XEvent* b),(a,b),return)
slouken@1952
   100
SDL_X11_SYM(Display*,XOpenDisplay,(_Xconst char* a),(a),return)
mikesart@6569
   101
SDL_X11_SYM(Status,XInitThreads,(void),(),return)
slouken@1952
   102
SDL_X11_SYM(int,XPeekEvent,(Display* a,XEvent* b),(a,b),return)
slouken@1952
   103
SDL_X11_SYM(int,XPending,(Display* a),(a),return)
slouken@1952
   104
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)
slouken@1952
   105
SDL_X11_SYM(int,XQueryKeymap,(Display* a,char *b),(a,b),return)
slouken@1952
   106
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)
slouken@1952
   107
SDL_X11_SYM(int,XRaiseWindow,(Display* a,Window b),(a,b),return)
icculus@6467
   108
SDL_X11_SYM(int,XReparentWindow,(Display* a,Window b,Window c,int d,int e),(a,b,c,d,e),return)
slouken@3025
   109
SDL_X11_SYM(int,XResetScreenSaver,(Display* a),(a),return)
slouken@1952
   110
SDL_X11_SYM(int,XResizeWindow,(Display* a,Window b,unsigned int c,unsigned int d),(a,b,c,d),return)
slouken@1952
   111
SDL_X11_SYM(int,XSelectInput,(Display* a,Window b,long c),(a,b,c),return)
slouken@1952
   112
SDL_X11_SYM(Status,XSendEvent,(Display* a,Window b,Bool c,long d,XEvent* e),(a,b,c,d,e),return)
slouken@1952
   113
SDL_X11_SYM(XErrorHandler,XSetErrorHandler,(XErrorHandler a),(a),return)
slouken@6602
   114
SDL_X11_SYM(int,XSetForeground,(Display* a,GC b,unsigned long c),(a,b,c),return)
slouken@1952
   115
SDL_X11_SYM(XIOErrorHandler,XSetIOErrorHandler,(XIOErrorHandler a),(a),return)
icculus@6423
   116
SDL_X11_SYM(int,XSetInputFocus,(Display *a,Window b,int c,Time d),(a,b,c,d),return)
slouken@4508
   117
SDL_X11_SYM(int,XSetSelectionOwner,(Display* a,Atom b,Window c,Time d),(a,b,c,d),return)
slouken@1952
   118
SDL_X11_SYM(int,XSetTransientForHint,(Display* a,Window b,Window c),(a,b,c),return)
slouken@1952
   119
SDL_X11_SYM(void,XSetTextProperty,(Display* a,Window b,XTextProperty* c,Atom d),(a,b,c,d),)
icculus@6467
   120
SDL_X11_SYM(int,XSetWindowBackground,(Display* a,Window b,unsigned long c),(a,b,c),return)
slouken@6168
   121
SDL_X11_SYM(void,XSetWMProperties,(Display* a,Window b,XTextProperty* c,XTextProperty* d,char** e,int f,XSizeHints* g,XWMHints* h,XClassHint* i),(a,b,c,d,e,f,g,h,i),)
slouken@4508
   122
SDL_X11_SYM(void,XSetWMNormalHints,(Display* a,Window b,XSizeHints* c),(a,b,c),)
slouken@4508
   123
SDL_X11_SYM(Status,XSetWMProtocols,(Display* a,Window b,Atom* c,int d),(a,b,c,d),return)
slouken@1952
   124
SDL_X11_SYM(int,XStoreColors,(Display* a,Colormap b,XColor* c,int d),(a,b,c,d),return)
slouken@6602
   125
SDL_X11_SYM(int,XStoreName,(Display* a,Window b,_Xconst char* c),(a,b,c),return)
slouken@1952
   126
SDL_X11_SYM(Status,XStringListToTextProperty,(char** a,int b,XTextProperty* c),(a,b,c),return)
slouken@1952
   127
SDL_X11_SYM(int,XSync,(Display* a,Bool b),(a,b),return)
slouken@6602
   128
SDL_X11_SYM(int,XTextExtents,(XFontStruct* a,_Xconst char* b,int c,int* d,int* e,int* f,XCharStruct* g),(a,b,c,d,e,f,g),return)
slouken@6602
   129
SDL_X11_SYM(Bool,XTranslateCoordinates,(Display *a,Window b,Window c,int d,int e,int* f,int* g,Window* h),(a,b,c,d,e,f,g,h),return)
slouken@5470
   130
SDL_X11_SYM(int,XUndefineCursor,(Display* a,Window b),(a,b),return)
slouken@1952
   131
SDL_X11_SYM(int,XUngrabKeyboard,(Display* a,Time b),(a,b),return)
slouken@1952
   132
SDL_X11_SYM(int,XUngrabPointer,(Display* a,Time b),(a,b),return)
bob@2185
   133
SDL_X11_SYM(int,XUngrabServer,(Display* a),(a),return)
icculus@6573
   134
SDL_X11_SYM(int,XUninstallColormap,(Display* a,Colormap b),(a,b),return)
slouken@6602
   135
SDL_X11_SYM(int,XUnloadFont,(Display* a,Font b),(a,b),return)
bob@2185
   136
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)
slouken@6602
   137
SDL_X11_SYM(int,XWindowEvent,(Display* a,Window b,long c,XEvent* d),(a,b,c,d),return)
slouken@7522
   138
SDL_X11_SYM(Status,XWithdrawWindow,(Display* a,Window b,int c),(a,b,c),return)
slouken@1952
   139
SDL_X11_SYM(VisualID,XVisualIDFromVisual,(Visual* a),(a),return)
slouken@6313
   140
#if SDL_VIDEO_DRIVER_X11_CONST_PARAM_XEXTADDDISPLAY
slouken@6311
   141
SDL_X11_SYM(XExtDisplayInfo*,XextAddDisplay,(XExtensionInfo* a,Display* b,_Xconst char* c,XExtensionHooks* d,int e,XPointer f),(a,b,c,d,e,f),return)
slouken@6313
   142
#else
slouken@6313
   143
SDL_X11_SYM(XExtDisplayInfo*,XextAddDisplay,(XExtensionInfo* a,Display* b,char* c,XExtensionHooks* d,int e,XPointer f),(a,b,c,d,e,f),return)
slouken@6313
   144
#endif
slouken@1952
   145
SDL_X11_SYM(XExtensionInfo*,XextCreateExtension,(void),(),return)
slouken@1952
   146
SDL_X11_SYM(void,XextDestroyExtension,(XExtensionInfo* a),(a),)
slouken@1952
   147
SDL_X11_SYM(XExtDisplayInfo*,XextFindDisplay,(XExtensionInfo* a,Display* b),(a,b),return)
slouken@1952
   148
SDL_X11_SYM(int,XextRemoveDisplay,(XExtensionInfo* a,Display* b),(a,b),return)
slouken@1952
   149
SDL_X11_SYM(Bool,XQueryExtension,(Display* a,_Xconst char* b,int* c,int* d,int* e),(a,b,c,d,e),return)
slouken@1952
   150
SDL_X11_SYM(char *,XDisplayString,(Display* a),(a),return)
slouken@1952
   151
SDL_X11_SYM(int,XGetErrorText,(Display* a,int b,char* c,int d),(a,b,c,d),return)
slouken@1952
   152
SDL_X11_SYM(void,_XEatData,(Display* a,unsigned long b),(a,b),)
slouken@1952
   153
SDL_X11_SYM(void,_XFlush,(Display* a),(a),)
slouken@1952
   154
SDL_X11_SYM(void,_XFlushGCCache,(Display* a,GC b),(a,b),)
slouken@1952
   155
SDL_X11_SYM(int,_XRead,(Display* a,char* b,long c),(a,b,c),return)
slouken@1952
   156
SDL_X11_SYM(void,_XReadPad,(Display* a,char* b,long c),(a,b,c),)
slouken@1952
   157
SDL_X11_SYM(void,_XSend,(Display* a,_Xconst char* b,long c),(a,b,c),)
slouken@1952
   158
SDL_X11_SYM(Status,_XReply,(Display* a,xReply* b,int c,Bool d),(a,b,c,d),return)
slouken@1952
   159
SDL_X11_SYM(unsigned long,_XSetLastRequestRead,(Display* a,xGenericReply* b),(a,b),return)
slouken@1952
   160
SDL_X11_SYM(SDL_X11_XSynchronizeRetType,XSynchronize,(Display* a,Bool b),(a,b),return)
slouken@1952
   161
SDL_X11_SYM(SDL_X11_XESetWireToEventRetType,XESetWireToEvent,(Display* a,int b,SDL_X11_XESetWireToEventRetType c),(a,b,c),return)
slouken@1952
   162
SDL_X11_SYM(SDL_X11_XESetEventToWireRetType,XESetEventToWire,(Display* a,int b,SDL_X11_XESetEventToWireRetType c),(a,b,c),return)
icculus@9788
   163
SDL_X11_SYM(void,XRefreshKeyboardMapping,(XMappingEvent *a),(a),)
icculus@10386
   164
SDL_X11_SYM(int,XQueryTree,(Display* a,Window b,Window* c,Window* d,Window** e,unsigned int* f),(a,b,c,d,e,f),return)
slouken@1952
   165
slouken@6311
   166
#if SDL_VIDEO_DRIVER_X11_SUPPORTS_GENERIC_EVENTS
slouken@6311
   167
SDL_X11_SYM(Bool,XGetEventData,(Display* a,XGenericEventCookie* b),(a,b),return)
slouken@6311
   168
SDL_X11_SYM(void,XFreeEventData,(Display* a,XGenericEventCookie* b),(a,b),)    
slouken@6311
   169
#endif
slouken@6311
   170
dimitris@6318
   171
#if SDL_VIDEO_DRIVER_X11_HAS_XKBKEYCODETOKEYSYM
alex@10494
   172
SDL_X11_SYM(Bool,XkbQueryExtension,(Display* a,int * b,int * c,int * d,int * e, int *f),(a,b,c,d,e,f),return)
dimitris@6318
   173
#if NeedWidePrototypes
dimitris@6318
   174
SDL_X11_SYM(KeySym,XkbKeycodeToKeysym,(Display* a,unsigned int b,int c,int d),(a,b,c,d),return)
dimitris@6318
   175
#else
dimitris@6318
   176
SDL_X11_SYM(KeySym,XkbKeycodeToKeysym,(Display* a,KeyCode b,int c,int d),(a,b,c,d),return)
dimitris@6318
   177
#endif
jwyatt@9842
   178
SDL_X11_SYM(Status,XkbGetState,(Display* a,unsigned int b,XkbStatePtr c),(a,b,c),return)
slouken@10439
   179
SDL_X11_SYM(Status,XkbGetUpdatedMap,(Display* a,unsigned int b,XkbDescPtr c),(a,b,c),return)
slouken@10439
   180
SDL_X11_SYM(XkbDescPtr,XkbGetMap,(Display* a,unsigned int b,unsigned int c),(a,b,c),return)
slouken@10439
   181
SDL_X11_SYM(void,XkbFreeClientMap,(XkbDescPtr a,unsigned int b, Bool c),(a,b,c),)
slouken@10569
   182
SDL_X11_SYM(void,XkbFreeKeyboard,(XkbDescPtr a,unsigned int b, Bool c),(a,b,c),)
alex@10562
   183
SDL_X11_SYM(BOOL,XkbSetDetectableAutoRepeat,(Display* a, BOOL b, BOOL* c),(a,b,c),return)
dimitris@6318
   184
#endif
dimitris@6318
   185
slouken@1950
   186
#if NeedWidePrototypes
slouken@1952
   187
SDL_X11_SYM(KeySym,XKeycodeToKeysym,(Display* a,unsigned int b,int c),(a,b,c),return)
slouken@1950
   188
#else
slouken@1952
   189
SDL_X11_SYM(KeySym,XKeycodeToKeysym,(Display* a,KeyCode b,int c),(a,b,c),return)
slouken@1950
   190
#endif
slouken@1952
   191
slouken@1950
   192
#ifdef X_HAVE_UTF8_STRING
slouken@1950
   193
SDL_X11_MODULE(UTF8)
slouken@1952
   194
SDL_X11_SYM(int,Xutf8TextListToTextProperty,(Display* a,char** b,int c,XICCEncodingStyle d,XTextProperty* e),(a,b,c,d,e),return)
slouken@1952
   195
SDL_X11_SYM(int,Xutf8LookupString,(XIC a,XKeyPressedEvent* b,char* c,int d,KeySym* e,Status* f),(a,b,c,d,e,f),return)
gabomdq@7678
   196
/* SDL_X11_SYM(XIC,XCreateIC,(XIM, ...),return)  !!! ARGH! */
slouken@1952
   197
SDL_X11_SYM(void,XDestroyIC,(XIC a),(a),)
gabomdq@7678
   198
/* SDL_X11_SYM(char*,XGetICValues,(XIC, ...),return)  !!! ARGH! */
slouken@1952
   199
SDL_X11_SYM(void,XSetICFocus,(XIC a),(a),)
slouken@1952
   200
SDL_X11_SYM(void,XUnsetICFocus,(XIC a),(a),)
slouken@1952
   201
SDL_X11_SYM(XIM,XOpenIM,(Display* a,struct _XrmHashBucketRec* b,char* c,char* d),(a,b,c,d),return)
slouken@1952
   202
SDL_X11_SYM(Status,XCloseIM,(XIM a),(a),return)
icculus@6723
   203
SDL_X11_SYM(void,Xutf8DrawString,(Display *a, Drawable b, XFontSet c, GC d, int e, int f, _Xconst char *g, int h),(a,b,c,d,e,f,g,h),)
icculus@6723
   204
SDL_X11_SYM(int,Xutf8TextExtents,(XFontSet a, _Xconst char*	b, int c, XRectangle* d, XRectangle* e),(a,b,c,d,e),return)
alex@10436
   205
SDL_X11_SYM(char*,XSetLocaleModifiers,(const char *a),(a),return)
slouken@10548
   206
SDL_X11_SYM(char*,Xutf8ResetIC,(XIC a),(a),return)
slouken@1950
   207
#endif
slouken@1952
   208
slouken@1950
   209
#ifndef NO_SHARED_MEMORY
slouken@1950
   210
SDL_X11_MODULE(SHM)
slouken@1952
   211
SDL_X11_SYM(Status,XShmAttach,(Display* a,XShmSegmentInfo* b),(a,b),return)
slouken@1952
   212
SDL_X11_SYM(Status,XShmDetach,(Display* a,XShmSegmentInfo* b),(a,b),return)
slouken@1952
   213
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)
slouken@1952
   214
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)
sunnysachanandani@4580
   215
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)
slouken@1952
   216
SDL_X11_SYM(Bool,XShmQueryExtension,(Display* a),(a),return)
slouken@1950
   217
#endif
slouken@1952
   218
slouken@1950
   219
/*
slouken@1950
   220
 * Not required...these only exist in code in headers on some 64-bit platforms,
slouken@1950
   221
 *  and are removed via macros elsewhere, so it's safe for them to be missing.
slouken@1950
   222
 */
slouken@1950
   223
#ifdef LONG64
slouken@1950
   224
SDL_X11_MODULE(IO_32BIT)
azamat@7266
   225
SDL_X11_SYM(int,_XData32,(Display *dpy,register _Xconst long *data,unsigned len),(dpy,data,len),return)
slouken@1952
   226
SDL_X11_SYM(void,_XRead32,(Display *dpy,register long *data,long len),(dpy,data,len),)
slouken@1950
   227
#endif
slouken@1952
   228
slouken@1950
   229
/*
slouken@1950
   230
 * These only show up on some variants of Unix.
slouken@1950
   231
 */
slouken@1950
   232
#if defined(__osf__)
slouken@1950
   233
SDL_X11_MODULE(OSF_ENTRY_POINTS)
slouken@1952
   234
SDL_X11_SYM(void,_SmtBufferOverflow,(Display *dpy,register smtDisplayPtr p),(dpy,p),)
bob@2185
   235
SDL_X11_SYM(void,_SmtIpError,(Display *dpy,register smtDisplayPtr p,int i),(dpy,p,i),)
bob@2185
   236
SDL_X11_SYM(int,ipAllocateData,(ChannelPtr a,IPCard b,IPDataPtr * c),(a,b,c),return)
bob@2185
   237
SDL_X11_SYM(int,ipUnallocateAndSendData,(ChannelPtr a,IPCard b),(a,b),return)
slouken@1950
   238
#endif
slouken@1952
   239
slouken@5471
   240
/* XCursor support */
slouken@5471
   241
#if SDL_VIDEO_DRIVER_X11_XCURSOR
slouken@5471
   242
SDL_X11_MODULE(XCURSOR)
icculus@5981
   243
SDL_X11_SYM(XcursorImage*,XcursorImageCreate,(int a,int b),(a,b),return)
slouken@5471
   244
SDL_X11_SYM(void,XcursorImageDestroy,(XcursorImage *a),(a),)
icculus@5981
   245
SDL_X11_SYM(Cursor,XcursorImageLoadCursor,(Display *a,const XcursorImage *b),(a,b),return)
slouken@5471
   246
#endif
slouken@5471
   247
icculus@9657
   248
/* Xdbe support */
icculus@9657
   249
#if SDL_VIDEO_DRIVER_X11_XDBE
icculus@9657
   250
SDL_X11_MODULE(XDBE)
icculus@9657
   251
SDL_X11_SYM(Status,XdbeQueryExtension,(Display *dpy,int *major_version_return,int *minor_version_return),(dpy,major_version_return,minor_version_return),return)
icculus@9657
   252
SDL_X11_SYM(XdbeBackBuffer,XdbeAllocateBackBufferName,(Display *dpy,Window window,XdbeSwapAction swap_action),(dpy,window,swap_action),return)
icculus@9657
   253
SDL_X11_SYM(Status,XdbeDeallocateBackBufferName,(Display *dpy,XdbeBackBuffer buffer),(dpy,buffer),return)
icculus@9657
   254
SDL_X11_SYM(Status,XdbeSwapBuffers,(Display *dpy,XdbeSwapInfo *swap_info,int num_windows),(dpy,swap_info,num_windows),return)
icculus@9657
   255
SDL_X11_SYM(Status,XdbeBeginIdiom,(Display *dpy),(dpy),return)
icculus@9657
   256
SDL_X11_SYM(Status,XdbeEndIdiom,(Display *dpy),(dpy),return)
icculus@9657
   257
SDL_X11_SYM(XdbeScreenVisualInfo*,XdbeGetVisualInfo,(Display *dpy,Drawable *screen_specifiers,int *num_screens),(dpy,screen_specifiers,num_screens),return)
icculus@9657
   258
SDL_X11_SYM(void,XdbeFreeVisualInfo,(XdbeScreenVisualInfo *visual_info),(visual_info),)
icculus@9657
   259
SDL_X11_SYM(XdbeBackBufferAttributes*,XdbeGetBackBufferAttributes,(Display *dpy,XdbeBackBuffer buffer),(dpy,buffer),return)
icculus@9657
   260
#endif
icculus@9657
   261
slouken@5408
   262
/* Xinerama support */
slouken@5408
   263
#if SDL_VIDEO_DRIVER_X11_XINERAMA
slouken@5408
   264
SDL_X11_MODULE(XINERAMA)
icculus@5981
   265
SDL_X11_SYM(Bool,XineramaIsActive,(Display *a),(a),return)
icculus@5981
   266
SDL_X11_SYM(Bool,XineramaQueryExtension,(Display *a,int *b,int *c),(a,b,c),return)
icculus@6027
   267
SDL_X11_SYM(Status,XineramaQueryVersion,(Display *a,int *b,int *c),(a,b,c),return)
icculus@5981
   268
SDL_X11_SYM(XineramaScreenInfo*,XineramaQueryScreens,(Display *a, int *b),(a,b),return)
slouken@5408
   269
#endif
slouken@5408
   270
slouken@6311
   271
/* XInput2 support for multiple mice, tablets, etc. */
slouken@6311
   272
#if SDL_VIDEO_DRIVER_X11_XINPUT2
slouken@6311
   273
SDL_X11_MODULE(XINPUT2)
slouken@6311
   274
SDL_X11_SYM(XIDeviceInfo*,XIQueryDevice,(Display *a,int b,int *c),(a,b,c),return)
slouken@6311
   275
SDL_X11_SYM(void,XIFreeDeviceInfo,(XIDeviceInfo *a),(a),)
slouken@6311
   276
SDL_X11_SYM(int,XISelectEvents,(Display *a,Window b,XIEventMask *c,int d),(a,b,c,d),return)
slouken@6311
   277
SDL_X11_SYM(Status,XIQueryVersion,(Display *a,int *b,int *c),(a,b,c),return)
slouken@6311
   278
SDL_X11_SYM(XIEventMask*,XIGetSelectedEvents,(Display *a,Window b,int *c),(a,b,c),return)
slouken@5408
   279
#endif
slouken@5408
   280
slouken@5408
   281
/* XRandR support */
slouken@1950
   282
#if SDL_VIDEO_DRIVER_X11_XRANDR
slouken@1950
   283
SDL_X11_MODULE(XRANDR)
slouken@1952
   284
SDL_X11_SYM(Status,XRRQueryVersion,(Display *dpy,int *major_versionp,int *minor_versionp),(dpy,major_versionp,minor_versionp),return)
slouken@1952
   285
SDL_X11_SYM(XRRScreenConfiguration *,XRRGetScreenInfo,(Display *dpy,Drawable draw),(dpy,draw),return)
slouken@1952
   286
SDL_X11_SYM(SizeID,XRRConfigCurrentConfiguration,(XRRScreenConfiguration *config,Rotation *rotation),(config,rotation),return)
slouken@2873
   287
SDL_X11_SYM(short,XRRConfigCurrentRate,(XRRScreenConfiguration *config),(config),return)
slouken@2873
   288
SDL_X11_SYM(short *,XRRConfigRates,(XRRScreenConfiguration *config,int sizeID,int *nrates),(config,sizeID,nrates),return)
bob@2185
   289
SDL_X11_SYM(XRRScreenSize *,XRRConfigSizes,(XRRScreenConfiguration *config,int *nsizes),(config,nsizes),return)
slouken@2873
   290
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)
slouken@1952
   291
SDL_X11_SYM(void,XRRFreeScreenConfigInfo,(XRRScreenConfiguration *config),(config),)
slouken@6537
   292
SDL_X11_SYM(void,XRRSetScreenSize,(Display *dpy, Window window,int width, int height,int mmWidth, int mmHeight),(dpy,window,width,height,mmWidth,mmHeight),)
slouken@6537
   293
SDL_X11_SYM(Status,XRRGetScreenSizeRange,(Display *dpy, Window window,int *minWidth, int *minHeight, int *maxWidth, int *maxHeight),(dpy,window,minWidth,minHeight,maxWidth,maxHeight),return)
slouken@6537
   294
SDL_X11_SYM(XRRScreenResources *,XRRGetScreenResources,(Display *dpy, Window window),(dpy, window),return)
slouken@11454
   295
SDL_X11_SYM(XRRScreenResources *,XRRGetScreenResourcesCurrent,(Display *dpy, Window window),(dpy, window),return)
slouken@6537
   296
SDL_X11_SYM(void,XRRFreeScreenResources,(XRRScreenResources *resources),(resources),)
slouken@6537
   297
SDL_X11_SYM(XRROutputInfo *,XRRGetOutputInfo,(Display *dpy, XRRScreenResources *resources, RROutput output),(dpy,resources,output),return)
slouken@6537
   298
SDL_X11_SYM(void,XRRFreeOutputInfo,(XRROutputInfo *outputInfo),(outputInfo),)
slouken@6537
   299
SDL_X11_SYM(XRRCrtcInfo *,XRRGetCrtcInfo,(Display *dpy, XRRScreenResources *resources, RRCrtc crtc),(dpy,resources,crtc),return)
slouken@6537
   300
SDL_X11_SYM(void,XRRFreeCrtcInfo,(XRRCrtcInfo *crtcInfo),(crtcInfo),)
slouken@6537
   301
SDL_X11_SYM(Status,XRRSetCrtcConfig,(Display *dpy, XRRScreenResources *resources, RRCrtc crtc, Time timestamp, int x, int y, RRMode mode, Rotation rotation, RROutput *outputs, int noutputs),(dpy,resources,crtc,timestamp,x,y,mode,rotation,outputs,noutputs),return)
slouken@6796
   302
SDL_X11_SYM(Atom*,XRRListOutputProperties,(Display *dpy, RROutput output, int *nprop),(dpy,output,nprop),return)
slouken@6796
   303
SDL_X11_SYM(XRRPropertyInfo*,XRRQueryOutputProperty,(Display *dpy,RROutput output, Atom property),(dpy,output,property),return)
slouken@6796
   304
SDL_X11_SYM(int,XRRGetOutputProperty,(Display *dpy,RROutput output, Atom property, long offset, long length, Bool _delete, Bool pending, Atom req_type, Atom *actual_type, int *actual_format, unsigned long *nitems, unsigned long *bytes_after, unsigned char **prop),(dpy,output,property,offset,length, _delete, pending, req_type, actual_type, actual_format, nitems, bytes_after, prop),return)
icculus@9834
   305
SDL_X11_SYM(RROutput,XRRGetOutputPrimary,(Display *dpy,Window window),(dpy,window),return)
slouken@1950
   306
#endif
slouken@1952
   307
slouken@3025
   308
/* MIT-SCREEN-SAVER support */
slouken@5408
   309
#if SDL_VIDEO_DRIVER_X11_XSCRNSAVER
slouken@3025
   310
SDL_X11_MODULE(XSS)
slouken@3025
   311
SDL_X11_SYM(Bool,XScreenSaverQueryExtension,(Display *dpy,int *event_base,int *error_base),(dpy,event_base,error_base),return)
slouken@3025
   312
SDL_X11_SYM(Status,XScreenSaverQueryVersion,(Display *dpy,int *major_versionp,int *minor_versionp),(dpy,major_versionp,minor_versionp),return)
slouken@3025
   313
SDL_X11_SYM(void,XScreenSaverSuspend,(Display *dpy,Bool suspend),(dpy,suspend),return)
slouken@3025
   314
#endif
slouken@3025
   315
icculus@4794
   316
#if SDL_VIDEO_DRIVER_X11_XSHAPE
icculus@4790
   317
SDL_X11_MODULE(XSHAPE)
icculus@4790
   318
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),)
icculus@4790
   319
#endif
icculus@4790
   320
slouken@5408
   321
#if SDL_VIDEO_DRIVER_X11_XVIDMODE
slouken@5408
   322
SDL_X11_MODULE(XVIDMODE)
icculus@5981
   323
SDL_X11_SYM(Bool,XF86VidModeGetAllModeLines,(Display *a,int b,int *c,XF86VidModeModeInfo ***d),(a,b,c,d),return)
icculus@5981
   324
SDL_X11_SYM(Bool,XF86VidModeGetModeLine,(Display *a,int b,int *c,XF86VidModeModeLine *d),(a,b,c,d),return)
icculus@5981
   325
SDL_X11_SYM(Bool,XF86VidModeGetViewPort,(Display *a,int b,int *c,int *d),(a,b,c,d),return)
icculus@5981
   326
SDL_X11_SYM(Bool,XF86VidModeQueryExtension,(Display *a,int *b,int *c),(a,b,c),return)
icculus@5981
   327
SDL_X11_SYM(Bool,XF86VidModeQueryVersion,(Display *a,int *b,int *c),(a,b,c),return)
icculus@5981
   328
SDL_X11_SYM(Bool,XF86VidModeSwitchToMode,(Display *a,int b,XF86VidModeModeInfo *c),(a,b,c),return)
icculus@6467
   329
SDL_X11_SYM(Bool,XF86VidModeLockModeSwitch,(Display *a,int b,int c),(a,b,c),return)
slouken@5408
   330
#endif
slouken@5408
   331
icculus@10079
   332
#undef SDL_X11_MODULE
icculus@10079
   333
#undef SDL_X11_SYM
icculus@10079
   334
slouken@1952
   335
/* *INDENT-ON* */
slouken@1952
   336
slouken@1950
   337
/* vi: set ts=4 sw=4 expandtab: */