23 #if SDL_VIDEO_DRIVER_X11
27 #include "../SDL_sysvideo.h"
28 #include "../SDL_pixels_c.h"
29 #include "../../events/SDL_keyboard_c.h"
30 #include "../../events/SDL_mouse_c.h"
37 #if SDL_VIDEO_OPENGL_EGL
45 #define _NET_WM_STATE_REMOVE 0l
46 #define _NET_WM_STATE_ADD 1l
47 #define _NET_WM_STATE_TOGGLE 2l
49 static Bool isMapNotify(Display *
dpy, XEvent *ev, XPointer win)
51 return ev->type == MapNotify && ev->xmap.window == *((Window*)win);
53 static Bool isUnmapNotify(Display *
dpy, XEvent *ev, XPointer win)
55 return ev->type == UnmapNotify && ev->xunmap.window == *((Window*)win);
57 static Bool isConfigureNotify(Display *
dpy, XEvent *ev, XPointer win)
59 return ev->type == ConfigureNotify && ev->xconfigure.window == *((Window*)win);
89 XWindowAttributes attr;
92 if (attr.map_state != IsUnmapped) {
101 X11_IsActionAllowed(
SDL_Window *window, Atom action)
108 unsigned long remain;
109 unsigned long len,
i;
113 if (XGetWindowProperty(
display, data->
xwindow, _NET_WM_ALLOWED_ACTIONS, 0, 1024, False, XA_ATOM, &
type, &form, &len, &remain, (
unsigned char **)&list) == Success)
117 if (list[
i] == action) {
151 atoms[
count++] = _NET_WM_STATE_FOCUSED;
154 atoms[
count++] = _NET_WM_STATE_MAXIMIZED_VERT;
155 atoms[
count++] = _NET_WM_STATE_MAXIMIZED_HORZ;
158 atoms[
count++] = _NET_WM_STATE_FULLSCREEN;
161 XChangeProperty(
display, xwindow, _NET_WM_STATE, XA_ATOM, 32,
162 PropModeReplace, (
unsigned char *)atoms,
count);
164 XDeleteProperty(
display, xwindow, _NET_WM_STATE);
181 unsigned long i, numItems, bytesAfter;
182 unsigned char *propertyValue =
NULL;
186 if (XGetWindowProperty(
display, xwindow, _NET_WM_STATE,
188 &actualFormat, &numItems, &bytesAfter,
189 &propertyValue) == Success) {
190 Atom *atoms = (Atom *) propertyValue;
194 for (i = 0; i < numItems; ++
i) {
195 if (atoms[i] == _NET_WM_STATE_HIDDEN) {
197 }
else if (atoms[i] == _NET_WM_STATE_FOCUSED) {
199 }
else if (atoms[i] == _NET_WM_STATE_MAXIMIZED_VERT) {
201 }
else if (atoms[i] == _NET_WM_STATE_MAXIMIZED_HORZ) {
203 }
else if ( atoms[i] == _NET_WM_STATE_FULLSCREEN) {
207 if (maximized == 3) {
209 }
else if (fullscreen == 1) {
212 XFree(propertyValue);
237 #ifdef X_HAVE_UTF8_STRING
240 pXCreateIC(videodata->
im, XNClientWindow, w, XNFocusWindow, w,
241 XNInputStyle, XIMPreeditNothing | XIMStatusNothing,
242 XNResourceName, videodata->
classname, XNResourceClass,
251 if (numwindows < windowlistlength) {
252 windowlist[numwindows] =
data;
258 1) *
sizeof(*windowlist));
263 windowlist[numwindows] =
data;
271 XWindowAttributes attrib;
274 window->
x = attrib.x;
275 window->
y = attrib.y;
276 window->
w = attrib.width;
277 window->
h = attrib.height;
278 if (attrib.map_state != IsUnmapped) {
283 data->
visual = attrib.visual;
298 if (window->
flags & SDL_WINDOW_INPUT_FOCUS) {
321 Atom WM_HINTS =
XInternAtom(display,
"_MOTIF_WM_HINTS", True);
322 if (WM_HINTS != None) {
327 unsigned long functions;
328 unsigned long decorations;
330 unsigned long status;
332 (1L << 1), 0, border ? 1 : 0, 0, 0
335 XChangeProperty(display, window, WM_HINTS, WM_HINTS, 32,
336 PropModeReplace, (
unsigned char *) &MWMHints,
337 sizeof(MWMHints) / 4);
350 Display *display = data->
display;
351 int screen = displaydata->screen;
354 XSetWindowAttributes xattr;
356 XSizeHints *sizehints;
358 XClassHint *classhints;
359 const long _NET_WM_BYPASS_COMPOSITOR_HINT_ON = 1;
360 Atom _NET_WM_BYPASS_COMPOSITOR;
361 Atom _NET_WM_WINDOW_TYPE;
362 Atom _NET_WM_WINDOW_TYPE_NORMAL;
364 Atom XdndAware, xdnd_version = 5;
367 #if SDL_VIDEO_OPENGL_GLX || SDL_VIDEO_OPENGL_EGL
370 XVisualInfo *vinfo =
NULL;
372 #if SDL_VIDEO_OPENGL_EGL
375 vinfo = X11_GLES_GetVisual(
_this, display, screen);
379 #if SDL_VIDEO_OPENGL_GLX
380 vinfo = X11_GL_GetVisual(
_this, display, screen);
387 visual = vinfo->visual;
388 depth = vinfo->depth;
393 visual = displaydata->visual;
394 depth = displaydata->depth;
397 xattr.override_redirect = False;
398 xattr.background_pixmap = None;
399 xattr.border_pixel = 0;
401 if (visual->class == DirectColor) {
405 int rmax, gmax, bmax;
406 int rmask, gmask, bmask;
407 int rshift, gshift, bshift;
410 XCreateColormap(display, RootWindow(display, screen),
414 if (!xattr.colormap) {
415 return SDL_SetError(
"Could not create writable colormap");
419 colorcells =
SDL_malloc(visual->map_entries *
sizeof(XColor));
423 ncolors = visual->map_entries;
429 rmask = visual->red_mask;
430 while (0 == (rmask & 1)) {
436 gmask = visual->green_mask;
437 while (0 == (gmask & 1)) {
443 bmask = visual->blue_mask;
444 while (0 == (bmask & 1)) {
450 for (i = 0; i < ncolors; i++) {
455 Uint32 rbits = (rmask *
i) / (ncolors - 1);
456 Uint32 gbits = (gmask *
i) / (ncolors - 1);
457 Uint32 bbits = (bmask *
i) / (ncolors - 1);
460 (rbits << rshift) | (gbits << gshift) | (bbits << bshift);
462 colorcells[
i].pixel = pix;
464 colorcells[
i].red =
red;
465 colorcells[
i].green =
green;
466 colorcells[
i].blue =
blue;
468 colorcells[
i].flags = DoRed | DoGreen | DoBlue;
471 XStoreColors(display, xattr.colormap, colorcells, ncolors);
476 XCreateColormap(display, RootWindow(display, screen),
480 w = XCreateWindow(display, RootWindow(display, screen),
481 window->
x, window->
y, window->
w, window->
h,
482 0, depth, InputOutput, visual,
483 (CWOverrideRedirect | CWBackPixmap | CWBorderPixel |
484 CWColormap), &xattr);
489 SetWindowBordered(display, screen, w,
492 sizehints = XAllocSizeHints();
494 sizehints->flags = 0;
496 sizehints->min_width = sizehints->max_width = window->
w;
497 sizehints->min_height = sizehints->max_height = window->
h;
498 sizehints->flags |= (PMaxSize | PMinSize);
500 sizehints->x = window->
x;
501 sizehints->y = window->
y;
502 sizehints->flags |= USPosition;
506 wmhints->input = True;
507 wmhints->flags = InputHint;
510 classhints = XAllocClassHint();
515 XSetWMProperties(display, w,
NULL,
NULL,
NULL, 0, sizehints, wmhints, classhints);
522 _NET_WM_PID =
XInternAtom(display,
"_NET_WM_PID", False);
523 XChangeProperty(display, w, _NET_WM_PID, XA_CARDINAL, 32, PropModeReplace,
524 (
unsigned char *)&data->
pid, 1);
531 _NET_WM_WINDOW_TYPE =
XInternAtom(display,
"_NET_WM_WINDOW_TYPE", False);
532 _NET_WM_WINDOW_TYPE_NORMAL =
XInternAtom(display,
"_NET_WM_WINDOW_TYPE_NORMAL", False);
533 XChangeProperty(display, w, _NET_WM_WINDOW_TYPE, XA_ATOM, 32,
535 (
unsigned char *)&_NET_WM_WINDOW_TYPE_NORMAL, 1);
537 _NET_WM_BYPASS_COMPOSITOR =
XInternAtom(display,
"_NET_WM_BYPASS_COMPOSITOR", False);
538 XChangeProperty(display, w, _NET_WM_BYPASS_COMPOSITOR, XA_CARDINAL, 32,
540 (
unsigned char *)&_NET_WM_BYPASS_COMPOSITOR_HINT_ON, 1);
547 XSetWMProtocols(display, w, protocols,
sizeof (protocols) /
sizeof (protocols[0]));
560 if (!
_this->egl_data) {
570 return SDL_SetError(
"Could not create GLES window surface");
576 #ifdef X_HAVE_UTF8_STRING
578 pXGetICValues(windowdata->
ic, XNFilterEvents, &fevent,
NULL);
584 XSelectInput(display, w,
585 (FocusChangeMask | EnterWindowMask | LeaveWindowMask |
586 ExposureMask | ButtonPressMask | ButtonReleaseMask |
587 PointerMotionMask | KeyPressMask | KeyReleaseMask |
588 PropertyChangeMask | StructureNotifyMask |
589 KeymapStateMask | fevent));
591 XdndAware =
XInternAtom(display,
"XdndAware", False);
592 XChangeProperty(display, w, XdndAware, XA_ATOM, 32,
594 (
unsigned char*)&xdnd_version, 1);
604 Window w = (Window) data;
618 Display *display = data->
display;
619 int status, real_format;
621 unsigned long items_read, items_left;
622 unsigned char *propdata;
625 status = XGetWindowProperty(display, xwindow, data->
_NET_WM_NAME,
626 0L, 8192L, False, data->
UTF8_STRING, &real_type, &real_format,
627 &items_read, &items_left, &propdata);
628 if (status == Success && propdata) {
632 status = XGetWindowProperty(display, xwindow, XA_WM_NAME,
633 0L, 8192L, False, XA_STRING, &real_type, &real_format,
634 &items_read, &items_left, &propdata);
635 if (status == Success && propdata) {
649 XTextProperty titleprop, iconprop;
651 const char *title = window->
title;
652 const char *icon =
NULL;
654 #ifdef X_HAVE_UTF8_STRING
668 XSetTextProperty(display, data->
xwindow, &titleprop, XA_WM_NAME);
669 XFree(titleprop.value);
671 #ifdef X_HAVE_UTF8_STRING
674 Xutf8TextListToTextProperty(display, (
char **) &title, 1,
675 XUTF8StringStyle, &titleprop);
676 if (status == Success) {
677 XSetTextProperty(display, data->
xwindow, &titleprop,
679 XFree(titleprop.value);
693 XSetTextProperty(display, data->
xwindow, &iconprop,
695 XFree(iconprop.value);
697 #ifdef X_HAVE_UTF8_STRING
700 Xutf8TextListToTextProperty(display, (
char **) &icon, 1,
701 XUTF8StringStyle, &iconprop);
702 if (status == Success) {
703 XSetTextProperty(display, data->
xwindow, &iconprop,
705 XFree(iconprop.value);
726 propsize = 2 + (icon->
w * icon->
h);
727 propdata =
SDL_malloc(propsize *
sizeof(
long));
733 propdata[0] = icon->
w;
734 propdata[1] = icon->
h;
736 for (y = 0; y < icon->
h; ++
y) {
738 for (x = 0; x < icon->
w; ++
x) {
742 XChangeProperty(display, data->
xwindow, _NET_WM_ICON, XA_CARDINAL,
743 32, PropModeReplace, (
unsigned char *) propdata,
748 XDeleteProperty(display, data->
xwindow, _NET_WM_ICON);
770 XSizeHints *sizehints = XAllocSizeHints();
773 XGetWMNormalHints(display, data->
xwindow, sizehints, &userhints);
775 sizehints->min_width = window->
min_w;
776 sizehints->min_height = window->
min_h;
777 sizehints->flags |= PMinSize;
786 XRaiseWindow(display, data->
xwindow);
799 XSizeHints *sizehints = XAllocSizeHints();
802 XGetWMNormalHints(display, data->
xwindow, sizehints, &userhints);
804 sizehints->max_width = window->
max_w;
805 sizehints->max_height = window->
max_h;
806 sizehints->flags |= PMaxSize;
815 XRaiseWindow(display, data->
xwindow);
833 XSizeHints *sizehints = XAllocSizeHints();
836 XGetWMNormalHints(display, data->
xwindow, sizehints, &userhints);
838 sizehints->min_width = sizehints->max_width = window->
w;
839 sizehints->min_height = sizehints->max_height = window->
h;
840 sizehints->flags |= PMinSize | PMaxSize;
864 XRaiseWindow(display, data->
xwindow);
883 SetWindowBordered(display, displaydata->screen, data->
xwindow, bordered);
885 XIfEvent(display, &event, &isConfigureNotify, (XPointer)&data->
xwindow);
888 XWindowAttributes attr;
890 XSync(display, False);
892 }
while (attr.map_state != IsViewable);
900 XSync(display, False);
912 if (!X11_IsWindowMapped(
_this, window)) {
913 XMapRaised(display, data->
xwindow);
930 if (X11_IsWindowMapped(
_this, window)) {
947 if (X11_IsWindowMapped(
_this, window)) {
951 e.xany.type = ClientMessage;
952 e.xclient.message_type = _NET_ACTIVE_WINDOW;
953 e.xclient.format = 32;
954 e.xclient.window = data->
xwindow;
955 e.xclient.data.l[0] = 1;
956 e.xclient.data.l[1] = CurrentTime;
957 e.xclient.data.l[2] = 0;
959 XSendEvent(display, RootWindow(display, displaydata->screen), 0,
960 SubstructureNotifyMask | SubstructureRedirectMask, &e);
972 XRaiseWindow(display, data->
xwindow);
973 SetWindowActive(
_this, window);
991 window->
flags &= ~SDL_WINDOW_MAXIMIZED;
994 if (X11_IsWindowMapped(
_this, window)) {
998 e.xany.type = ClientMessage;
999 e.xclient.message_type = _NET_WM_STATE;
1000 e.xclient.format = 32;
1001 e.xclient.window = data->
xwindow;
1002 e.xclient.data.l[0] =
1003 maximized ? _NET_WM_STATE_ADD : _NET_WM_STATE_REMOVE;
1004 e.xclient.data.l[1] = _NET_WM_STATE_MAXIMIZED_VERT;
1005 e.xclient.data.l[2] = _NET_WM_STATE_MAXIMIZED_HORZ;
1006 e.xclient.data.l[3] = 0
l;
1008 XSendEvent(display, RootWindow(display, displaydata->screen), 0,
1009 SubstructureNotifyMask | SubstructureRedirectMask, &e);
1039 SetWindowActive(
_this, window);
1052 if (X11_IsWindowMapped(
_this, window)) {
1058 XSizeHints *sizehints = XAllocSizeHints();
1060 XGetWMNormalHints(display, data->
xwindow, sizehints, &flags);
1064 sizehints->flags &= ~(PMinSize | PMaxSize);
1067 sizehints->flags |= PMinSize | PMaxSize;
1068 sizehints->min_width = sizehints->max_width = window->
windowed.
w;
1069 sizehints->min_height = sizehints->max_height = window->
windowed.
h;
1076 e.xany.type = ClientMessage;
1077 e.xclient.message_type = _NET_WM_STATE;
1078 e.xclient.format = 32;
1079 e.xclient.window = data->
xwindow;
1080 e.xclient.data.l[0] =
1081 fullscreen ? _NET_WM_STATE_ADD : _NET_WM_STATE_REMOVE;
1082 e.xclient.data.l[1] = _NET_WM_STATE_FULLSCREEN;
1083 e.xclient.data.l[3] = 0
l;
1085 XSendEvent(display, RootWindow(display, displaydata->screen), 0,
1086 SubstructureNotifyMask | SubstructureRedirectMask, &e);
1090 flags = window->
flags;
1094 flags &= ~SDL_WINDOW_FULLSCREEN;
1099 if (data->
visual->class == DirectColor) {
1101 XInstallColormap(display, data->
colormap);
1116 Visual *visual = data->
visual;
1118 const int screen = displaydata->screen;
1119 Window root = RootWindow(display, screen);
1120 const int def_vis = (visual == DefaultVisual(display, screen));
1121 unsigned long xattrmask = 0;
1122 XSetWindowAttributes xattr;
1133 xattr.override_redirect = True;
1134 xattrmask |= CWOverrideRedirect;
1135 xattr.background_pixel = def_vis ? BlackPixel(display, screen) : 0;
1136 xattrmask |= CWBackPixel;
1137 xattr.border_pixel = 0;
1138 xattrmask |= CWBorderPixel;
1140 xattrmask |= CWColormap;
1142 data->
fswindow = XCreateWindow(display, root,
1143 rect.
x, rect.
y, rect.
w, rect.
h, 0,
1144 displaydata->depth, InputOutput,
1145 visual, xattrmask, &xattr);
1147 XSelectInput(display, data->
fswindow, StructureNotifyMask);
1149 XInstallColormap(display, data->
colormap);
1150 XClearWindow(display, data->
fswindow);
1151 XMapRaised(display, data->
fswindow);
1161 #if SDL_VIDEO_DRIVER_X11_XVIDMODE
1162 if ( displaydata->use_vidmode ) {
1163 XF86VidModeLockModeSwitch(display, screen, True);
1171 (rect.
w - window->
w) / 2, (rect.
h - window->
h) / 2);
1177 rect.
x += (rect.
w / 2);
1178 rect.
y += (rect.
h / 2);
1194 const int screen = displaydata->screen;
1195 Window root = RootWindow(display, screen);
1205 #if SDL_VIDEO_DRIVER_X11_VIDMODE
1206 if ( displaydata->use_vidmode ) {
1207 XF86VidModeLockModeSwitch(display, screen, False);
1216 XSync(display, False);
1220 SetWindowBordered(display, screen, data->
xwindow,
1226 XIfEvent(display, &ev, &isUnmapNotify, (XPointer)&fswindow);
1236 const char *
env =
SDL_getenv(
"SDL_VIDEO_X11_LEGACY_FULLSCREEN");
1242 if ( displaydata->use_vidmode ) {
1244 }
else if ( !videodata->
net_wm ) {
1255 X11_BeginWindowFullscreenLegacy(
_this, window, _display);
1257 X11_EndWindowFullscreenLegacy(
_this, window, _display);
1260 X11_SetWindowFullscreenViaWM(
_this, window, _display, fullscreen);
1270 Visual *visual = data->
visual;
1271 Colormap colormap = data->
colormap;
1274 int rmask, gmask, bmask;
1275 int rshift, gshift, bshift;
1278 if (visual->class != DirectColor) {
1279 return SDL_SetError(
"Window doesn't have DirectColor visual");
1282 ncolors = visual->map_entries;
1283 colorcells =
SDL_malloc(ncolors *
sizeof(XColor));
1289 rmask = visual->red_mask;
1290 while (0 == (rmask & 1)) {
1296 gmask = visual->green_mask;
1297 while (0 == (gmask & 1)) {
1303 bmask = visual->blue_mask;
1304 while (0 == (bmask & 1)) {
1310 for (i = 0; i < ncolors; i++) {
1311 Uint32 rbits = (rmask *
i) / (ncolors - 1);
1312 Uint32 gbits = (gmask *
i) / (ncolors - 1);
1313 Uint32 bbits = (bmask *
i) / (ncolors - 1);
1314 Uint32 pix = (rbits << rshift) | (gbits << gshift) | (bbits << bshift);
1316 colorcells[
i].pixel = pix;
1318 colorcells[
i].red = ramp[(0 * 256) + i];
1319 colorcells[
i].green = ramp[(1 * 256) + i];
1320 colorcells[
i].blue = ramp[(2 * 256) + i];
1322 colorcells[
i].flags = DoRed | DoGreen | DoBlue;
1345 oldstyle_fullscreen = X11_IsWindowLegacyFullscreen(
_this, window);
1347 if (oldstyle_fullscreen || grabbed) {
1352 GrabModeAsync, data->
xwindow, None, CurrentTime);
1353 if (result == GrabSuccess) {
1360 XRaiseWindow(display, data->
xwindow);
1370 grab_keyboard = oldstyle_fullscreen;
1372 if (grab_keyboard) {
1373 XGrabKeyboard(display, data->
xwindow, True, GrabModeAsync,
1374 GrabModeAsync, CurrentTime);
1378 XUngrabKeyboard(display, CurrentTime);
1380 XSync(display, False);
1391 Display *display = videodata->
display;
1397 for (i = 0; i < numwindows; ++
i) {
1398 if (windowlist[i] && (windowlist[i]->window == window)) {
1399 windowlist[
i] = windowlist[numwindows - 1];
1400 windowlist[numwindows - 1] =
NULL;
1406 #ifdef X_HAVE_UTF8_STRING
1408 XDestroyIC(data->
ic);
1432 SDL_SetError(
"Application not compiled with SDL %d.%d\n",
void SDL_UpdateWindowGrab(SDL_Window *window)
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 int int return Display Window Cursor return Display Window return Display Drawable GC int int unsigned int unsigned int return Display Drawable GC int int _Xconst char int return Display Drawable GC int int unsigned int unsigned int return Display return Display Cursor return Display GC return XModifierKeymap return cha XGetInputFocus)
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 int int return Display Window Cursor return Display Window return Display Drawable GC int int unsigned int unsigned int return Display Drawable GC int int _Xconst char int return Display Drawable GC int int unsigned int unsigned int return Display return Display Cursor return Display GC return XModifierKeymap return char Display Window int return Display return Display Atom return Display Window XWindowAttributes return Display Window retur XIfEvent)
#define SDL_MINOR_VERSION
Atom _NET_WM_STATE_FULLSCREEN
int X11_ResizeWindowShape(SDL_Window *window)
Atom _NET_WM_ALLOWED_ACTIONS
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 int int return Display Window Cursor return Display Window return Display Drawable GC int int unsigned int unsigned int return Display Drawable GC int int _Xconst char int return Display Drawable GC int int unsigned int unsigned int return Display return Display Cursor return Display GC return XModifierKeymap return char Display Window int return Display return Display Atom return Display Window XWindowAttributes return Display Window return Display XEvent Bool(*) XPointer return Display Window Bool unsigned int int int Window Cursor Time return Display Window int return KeySym return Display _Xconst char Bool return Display _Xconst char return XKeyEvent char int KeySym XComposeStatus return Display int int int XVisualInfo return Display Window int int return _Xconst char return Display XEvent return Display Drawable GC XImage int int int int unsigned int unsigned int return Display Window Window Window int int int int unsigned int return Display Window Window int int return Display Window unsigned int unsigned int return Display Window Bool long XEvent return Display GC unsigned long return Display Window int Time return Display Window Window return Display Window unsigned long return Display Window XSizeHints Display Colormap XColor int return char int XTextProperty return XFontStruct _Xconst char int int int int XCharStruct return Display Window return Display Time return Display Colormap retur XWarpPointer)
void X11_SetWindowTitle(_THIS, SDL_Window *window)
void SDL_SetKeyboardFocus(SDL_Window *window)
GLint GLenum GLsizei GLsizei GLsizei GLint GLenum GLenum type
Uint32 X11_GetNetWMState(_THIS, Window xwindow)
DECLSPEC void *SDLCALL SDL_calloc(size_t nmemb, size_t size)
#define SDL_VIDEO_OPENGL_ES
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 int int return Display Window Cursor return Display Window return Display Drawable GC int int unsigned int unsigned int return Display Drawable GC int int _Xconst char int return Display Drawable GC int int unsigned int unsigned int return Display return Display Cursor return Display GC return XModifierKeymap return char Display Window int return Display return Display Atom return Display Window XWindowAttributes return Display Window return Display XEvent Bool(*) XPointer return Display Window Bool unsigned int int int Window Cursor Time return Display Window int return KeySym return Display _Xconst char Bool return Display _Xconst char return XKeyEvent char int KeySym XComposeStatus return Display int int int XVisualInfo return Display Window int int return _Xconst char return Display XEvent return Display Drawable GC XImage int int int int unsigned int unsigned int return Display Window Window Window int int int int unsigned int return Display Window Window int int retur XResizeWindow)
Atom _NET_WM_STATE_MAXIMIZED_VERT
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 int int return Display Window Cursor return Display Window return Display Drawable GC int int unsigned int unsigned int return Display Drawable GC int int _Xconst char int return Display Drawable GC int int unsigned int unsigned int retur XFlush)
#define SDL_MAJOR_VERSION
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 int int return Display Window Cursor return Display Window return Display Drawable GC int int unsigned int unsigned int return Display Drawable GC int int _Xconst char int return Display Drawable GC int int unsigned int unsigned int return Display return Display Cursor return Display GC return XModifierKeymap return char Display Window int return Display return Display Atom return Display Window XWindowAttributes return Display Window return Display XEvent Bool(*) XPointer retur XGrabPointer)
return Display return Display Bool Bool int int e
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 int int return Display Window Cursor return Display Window return Display Drawable GC int int unsigned int unsigned int return Display Drawable GC int int _Xconst char int return Display Drawable GC int int unsigned int unsigned int return Display return Display Cursor return Display GC return XModifierKeymap return char Display Window int return Display return Display Atom return Display Window XWindowAttributes return Display Window return Display XEvent Bool(*) XPointer return Display Window Bool unsigned int int int Window Cursor Time retur XIconifyWindow)
DECLSPEC void *SDLCALL SDL_realloc(void *mem, size_t size)
A collection of pixels used in software blitting.
DECLSPEC void SDLCALL SDL_free(void *mem)
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 int int return Display Window Cursor return Display Window return Display Drawable GC int int unsigned int unsigned int return Display Drawable GC int int _Xconst char int return Display Drawable GC int int unsigned int unsigned int return Display return Display Cursor return Display GC return XModifierKeymap return char Display Window int return Display return Display Atom return Display Window XWindowAttributes return Display Window return Display XEvent Bool(*) XPointer return Display Window Bool unsigned int int int Window Cursor Time return Display Window int return KeySym return Display _Xconst char Bool return Display _Xconst char return XKeyEvent char int KeySym XComposeStatus return Display int int int XVisualInfo return Display Window int int return _Xconst char return Display XEvent return Display Drawable GC XImage int int int int unsigned int unsigned int return Display Window Window Window int int int int unsigned int return Display Window Window int int return Display Window unsigned int unsigned int return Display Window Bool long XEvent return Display GC unsigned long return Display Window int Time return Display Window Window return Display Window unsigned long return Display Window XSizeHint XStoreColors)
SDL_WindowData ** windowlist
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 int int return Display Window Cursor return Display Window return Display Drawable GC int int unsigned int unsigned int return Display Drawable GC int int _Xconst char int return Display Drawable GC int int unsigned int unsigned int return Display return Display Cursor return Display GC return XModifierKeymap return char Display Window int return Display return Display Atom return Display Window XWindowAttributes return Display Window return Display XEvent Bool(*) XPointer return Display Window Bool unsigned int int int Window Cursor Time return Display Window int return KeySym return Display _Xconst char Bool return Display _Xconst char return XKeyEvent char int KeySym XComposeStatus return Display int int int XVisualInfo return Display Window int int return _Xconst char return Display XEvent return Display Drawable GC XImage int int int int unsigned int unsigned int return Display Window Window Window int int int int unsigned int return Display Window Window int int return Display Window unsigned int unsigned int return Display Window Bool long XEvent return Display GC unsigned long return Display Window int Time return Display Window Window retur XSetWindowBackground)
void X11_SetWindowFullscreen(_THIS, SDL_Window *window, SDL_VideoDisplay *display, SDL_bool fullscreen)
void X11_MinimizeWindow(_THIS, SDL_Window *window)
void X11_SetNetWMState(_THIS, Window xwindow, Uint32 flags)
#define SDL_X11_HAVE_UTF8
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 int int return Display Window Cursor return Display Window return Display Drawable GC int int unsigned int unsigned int return Display Drawable GC int int _Xconst char int return Display Drawable GC int int unsigned int unsigned int return Display return Display Cursor return Display GC return XModifierKeymap return char Display Window int return Display return Display Atom return Display Window XWindowAttributes return Display Window return Display XEvent Bool(*) XPointer return Display Window Bool unsigned int int int Window Cursor Time return Display Window int return KeySym return Display _Xconst char Bool return Display _Xconst char return XKeyEvent char int KeySym XComposeStatus return Display int int int XVisualInfo return Display Window int int return _Xconst char return Display XEvent return Display Drawable GC XImage int int int int unsigned int unsigned int return Display Window Window Window int int int int unsigned int return Display Window Window int int return Display Window unsigned int unsigned int retur XSendEvent)
void X11_MaximizeWindow(_THIS, SDL_Window *window)
struct SDL_GLDriverData * gl_data
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 int int return Display Window Cursor return Display Window return Display Drawable GC int int unsigned int unsigned int return Display Drawable GC int int _Xconst char int return Display Drawable GC int int unsigned int unsigned int return Display return Display Cursor return Display GC return XModifierKeymap return char Display Window int return Display return Display Atom return Display Window XWindowAttributes return Display Window return Display XEvent Bool(*) XPointer return Display Window Bool unsigned int int int Window Cursor Time return Display Window int return KeySym return Display _Xconst char Bool return Display _Xconst char return XKeyEvent char int KeySym XComposeStatus return Display int int int XVisualInfo return Display Window int int return _Xconst char return Display XEvent return Display Drawable GC XImage int int int int unsigned int unsigned int return Display Window Window Window int int int int unsigned int return Display Window Window int int return Display Window unsigned int unsigned int return Display Window Bool long XEvent return Display GC unsigned long return Display Window int Time retur XSetTransientForHint)
#define SDL_HINT_GRAB_KEYBOARD
A variable controlling whether grabbing input grabs the keyboard.
int X11_GetDisplayBounds(_THIS, SDL_VideoDisplay *sdl_display, SDL_Rect *rect)
static SDL_VideoDevice * _this
uint32_t Uint32
An unsigned 32-bit integer type.
Atom _NET_WM_STATE_HIDDEN
return Display return Display Bool Bool int int int return XCheckIfEvent
DECLSPEC SDL_bool SDLCALL SDL_IsShapedWindow(const SDL_Window *window)
Return whether the given window is a shaped window.
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 int int return Display Window Cursor return Display Window return Display Drawable GC int int unsigned int unsigned int return Display Drawable GC int int _Xconst char int return Display Drawable GC int int unsigned int unsigned int return Display return Display Cursor return Display GC return XModifierKeymap return char Display Window int return Display return Display Atom return Display Window XWindowAttributes return Display Window return Display XEvent Bool(*) XPointer return Display Window Bool unsigned int int int Window Cursor Time return Display Window int return KeySym return Display _Xconst char Bool return Display _Xconst char return XKeyEvent char int KeySym XComposeStatus return Display int int int XVisualInfo return Display Window int int return _Xconst char return Display XEvent return Display Drawable GC XImage int int int int unsigned int unsigned int return Display Window Window Window int int int int unsigned int return Display Window Window int int return Display Window unsigned int unsigned int return Display Window Bool long XEvent return Display GC unsigned long retur XSetInputFocus)
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 int int return Display Window Cursor return Display Window return Display Drawable GC int int unsigned int unsigned int return Display Drawable GC int int _Xconst char int return Display Drawable GC int int unsigned int unsigned int return Display return Display Cursor return Display GC return XModifierKeymap return char Display Window int return Display return Display Atom return Display Window XWindowAttributes return Display Window return Display XEvent Bool(*) XPointer return Display Window Bool unsigned int int int Window Cursor Time return Display Window int return KeySym retur XInternAtom)
int X11_CreateWindow(_THIS, SDL_Window *window)
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 int int return Display Window Cursor return Display Window return Display Drawable GC int int unsigned int unsigned int return Display Drawable GC int int _Xconst char int return Display Drawable GC int int unsigned int unsigned int return Display return Display Cursor return Display GC return XModifierKeymap return char Display Window int return Display return Display Atom return Display Window XWindowAttributes return Display Window return Display XEvent Bool(*) XPointer return Display Window Bool unsigned int int int Window Cursor Time return Display Window int return KeySym return Display _Xconst char Bool return Display _Xconst char return XKeyEvent char int KeySym XComposeStatus return Display int int int XVisualInfo return Display Window int int return _Xconst char return Display XEvent return Display Drawable GC XImage int int int int unsigned int unsigned int return Display Window Window Window int int int int unsigned int return Display Window Window int int return Display Window unsigned int unsigned int return Display Window Bool long XEvent return Display GC unsigned long return Display Window int Time return Display Window Window return Display Window unsigned long return Display Window XSizeHints Display Colormap XColor int return char int XTextProperty return XFontStruct _Xconst char int int int int XCharStruct return Display Window return Display Time retur XUninstallColormap)
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
int X11_SetWindowGammaRamp(_THIS, SDL_Window *window, const Uint16 *ramp)
struct SDL_VideoData * videodata
DECLSPEC char *SDLCALL SDL_strdup(const char *str)
int X11_CreateWindowFrom(_THIS, SDL_Window *window, const void *data)
DECLSPEC void SDLCALL SDL_Delay(Uint32 ms)
Wait a specified number of milliseconds before returning.
void X11_RestoreWindow(_THIS, SDL_Window *window)
DECLSPEC int SDLCALL SDL_SetError(const char *fmt,...)
DECLSPEC void *SDLCALL SDL_malloc(size_t size)
GLint GLenum GLsizei GLsizei GLsizei depth
GLint GLenum GLsizei GLsizei GLsizei GLint border
void X11_ShowWindow(_THIS, SDL_Window *window)
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 int int return Display Window Cursor return Display Window return Display Drawable GC int int unsigned int unsigned int return Display Drawable GC int int _Xconst char int return Display Drawable GC int int unsigned int unsigned int return Display return Display Cursor return Display GC return XModifierKeymap return char Display Window int return Display return Display Atom retur XGetWindowAttributes)
DECLSPEC const char *SDLCALL SDL_GetHint(const char *name)
Get a hint.
void X11_DestroyWindow(_THIS, SDL_Window *window)
union SDL_SysWMinfo::@78 info
#define SDL_assert(condition)
void X11_SetWindowMinimumSize(_THIS, SDL_Window *window)
EGLSurface EGLint EGLint y
#define SDL_OutOfMemory()
Atom _NET_WM_STATE_MAXIMIZED_HORZ
GLenum GLsizei GLsizei GLsizei GLsizei GLbitfield flags
SDL_VideoDisplay * SDL_GetDisplayForWindow(SDL_Window *window)
uint8_t Uint8
An unsigned 8-bit integer type.
DECLSPEC int SDLCALL SDL_atoi(const char *str)
#define SDL_static_cast(type, expression)
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 int int return Display Window Cursor return Display Window return Display Drawable GC int int unsigned int unsigned int return Display Drawable GC int int _Xconst char int return Display Drawable GC int int unsigned int unsigned int return Display return Display Cursor return Display GC return XModifierKeymap return char Display Window int return Display return Display Atom return Display Window XWindowAttributes return Display Window return Display XEvent Bool(*) XPointer return Display Window Bool unsigned int int int Window Cursor Time return Display Window int return KeySym return Display _Xconst char Bool return Display _Xconst char return XKeyEvent char int KeySym XComposeStatus return Display int int int XVisualInfo return Display Window int int return _Xconst char return Display XEvent return Display Drawable GC XImage int int int int unsigned int unsigned int return Display Window Window Window int int int int unsigned int return Display Window Window int int return Display Window unsigned int unsigned int return Display Window Bool long XEvent return Display GC unsigned long return Display Window int Time return Display Window Window return Display Window unsigned long return Display Window XSizeHints Display Colormap XColor int retur XStringListToTextProperty)
Atom _NET_WM_STATE_FOCUSED
void X11_RaiseWindow(_THIS, SDL_Window *window)
DECLSPEC char *SDLCALL SDL_iconv_string(const char *tocode, const char *fromcode, const char *inbuf, size_t inbytesleft)
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 int int return Display Window Cursor return Display Window return Display Drawable GC int int unsigned int unsigned int return Display Drawable GC int int _Xconst char int return Display Drawable GC int int unsigned int unsigned int return Display return Display Cursor return Display GC return XModifierKeymap return char Display Window int return Display return Display Atom return Display Window XWindowAttributes return Display Window return Display XEvent Bool(*) XPointer return Display Window Bool unsigned int int int Window Cursor Time return Display Window int return KeySym return Display _Xconst char Bool return Display _Xconst char return XKeyEvent char int KeySym XComposeStatus return Display int int int XVisualInfo return Display Window int int return _Xconst char return Display XEvent return Display Drawable GC XImage int int int int unsigned int unsigned int return Display Window Window Window int int int int unsigned int return Display Window Window int int return Display Window unsigned int unsigned int return Display Window Bool long XEvent return Display GC unsigned long return Display Window int Time return Display Window Window return Display Window unsigned long return Display Window XSizeHints Display Colormap XColor int return char int XTextProperty return XFontStruct _Xconst char int int int int XCharStruct return Display Window return Display Time return Display Colormap return Display Window Window int int unsigned int unsigned int int int retur XWithdrawWindow)
void X11_SetWindowIcon(_THIS, SDL_Window *window, SDL_Surface *icon)
char * X11_GetWindowTitle(_THIS, Window xwindow)
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 int int return Display Window Cursor return Display Window return Display Drawable GC int int unsigned int unsigned int return Display Drawable GC int int _Xconst char int return Display Drawable GC int int unsigned int unsigned int return Display return Display Cursor return Display GC return XModifierKeymap return char Display Window int return Display return Display Atom return Display Window XWindowAttributes return Display Window return Display XEvent Bool(*) XPointer return Display Window Bool unsigned int int int Window Cursor Time return Display Window int return KeySym return Display _Xconst char Bool return Display _Xconst char return XKeyEvent char int KeySym XComposeStatus return Display int int int XVisualInfo return Display Window int int return _Xconst char return Display XEvent return Display Drawable GC XImage int int int int unsigned int unsigned int return Display Window Window Window int int int int unsigned int return Display Window Window int int return Display Window unsigned int unsigned int return Display Window Bool long XEvent return Display GC unsigned long return Display Window int Time return Display Window Window return Display Window unsigned long return Display Window XSizeHints Display Colormap XColor int return char int XTextProperty return XFontStruct _Xconst char int int int int XCharStruct return Display Window retur XUngrabPointer)
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 int int return Display Window Cursor return Display Window return Display Drawable GC int int unsigned int unsigned int return Display Drawable GC int int _Xconst char int return Display Drawable GC int int unsigned int unsigned int return Display return Display Cursor return Display GC return XModifierKeymap return char Display Window int return Display return Display Atom return Display Window XWindowAttributes return Display Window return Display XEvent Bool(*) XPointer return Display Window Bool unsigned int int int Window Cursor Time return Display Window int return KeySym return Display _Xconst char Bool return Display _Xconst char return XKeyEvent char int KeySym XComposeStatus return Display int int int XVisualInfo return Display Window int int return _Xconst char return Display XEvent return Display Drawable GC XImage int int int int unsigned int unsigned int return Display Window Window Window int int int int unsigned int return Display Window Window int int return Display Window unsigned int unsigned int return Display Window Bool long XEvent return Display GC unsigned long return Display Window int Time return Display Window Window return Display Window unsigned long retur XSetWMNormalHints)
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 int int return Display Window Cursor retur XDestroyWindow)
GLint GLint GLint GLint GLint w
uint16_t Uint16
An unsigned 16-bit integer type.
DECLSPEC char *SDLCALL SDL_getenv(const char *name)
void X11_SetWindowSize(_THIS, SDL_Window *window)
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 int int return Display Window Cursor return Display Window return Display Drawable GC int int unsigned int unsigned int return Display Drawable GC int int _Xconst char int return Display Drawable GC int int unsigned int unsigned int return Display return Display Cursor return Display GC return XModifierKeymap return char Display Window int return Display return Display Atom return Display Window XWindowAttributes return Display Window return Display XEvent Bool(*) XPointer return Display Window Bool unsigned int int int Window Cursor Time return Display Window int return KeySym return Display _Xconst char Bool return Display _Xconst char return XKeyEvent char int KeySym XComposeStatus return Display int int int XVisualInfo return Display Window int int return _Xconst char return Display XEvent return Display Drawable GC XImage int int int int unsigned int unsigned int return Display Window Window Window int int int int unsigned int retur XReparentWindow)
void X11_SetWindowBordered(_THIS, SDL_Window *window, SDL_bool bordered)
void X11_HideWindow(_THIS, SDL_Window *window)
struct SDL_VideoDevice::@87 gl_config
void X11_SetWindowGrab(_THIS, SDL_Window *window, SDL_bool grabbed)
#define SDL_iconv_utf8_locale(S)
A rectangle, with the origin at the upper left.
SDL_bool X11_GetWindowWMInfo(_THIS, SDL_Window *window, struct SDL_SysWMinfo *info)
void X11_SetWindowMaximumSize(_THIS, SDL_Window *window)
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 int int return Display Window Cursor return Display Window return Display Drawable GC int int unsigned int unsigned int return Display Drawable GC int int _Xconst char int return Display Drawable GC int int unsigned int unsigned int return Display return Display Cursor return Display GC return XModifierKeymap return char Display Window int return Display return Display Atom return Display Window XWindowAttributes return Display Window return Display XEvent Bool(*) XPointer return Display Window Bool unsigned int int int Window Cursor Time return Display Window int return KeySym return Display _Xconst char Bool return Display _Xconst char return XKeyEvent char int KeySym XComposeStatus return Display int int int XVisualInfo retur XMoveWindow)
typedef BOOL(WINAPI *PFNWGLSETSTEREOEMITTERSTATE3DLPROC)(HDC hDC
void X11_SetWindowPosition(_THIS, SDL_Window *window)