SDL 2.0
SDL_x11window.h
Go to the documentation of this file.
1/*
2 Simple DirectMedia Layer
3 Copyright (C) 1997-2019 Sam Lantinga <slouken@libsdl.org>
4
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.
8
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:
12
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.
20*/
21#include "../../SDL_internal.h"
22
23#ifndef SDL_x11window_h_
24#define SDL_x11window_h_
25
26/* We need to queue the focus in/out changes because they may occur during
27 video mode changes and we can respond to them by triggering more mode
28 changes.
29*/
30#define PENDING_FOCUS_TIME 200
31
32#if SDL_VIDEO_OPENGL_EGL
33#include <EGL/egl.h>
34#endif
35
36typedef enum
37{
42
43typedef struct
44{
46 Window xwindow;
47 Window fswindow; /* used if we can't have the WM handle fullscreen. */
48 Visual *visual;
49 Colormap colormap;
50#ifndef NO_SHARED_MEMORY
51 /* MIT shared memory extension information */
53 XShmSegmentInfo shminfo;
54#endif
55 XImage *ximage;
56 GC gc;
57 XIC ic;
58 SDL_bool created;
66 XConfigureEvent last_xconfigure;
67 struct SDL_VideoData *videodata;
68 unsigned long user_time;
71#if SDL_VIDEO_OPENGL_EGL
72 EGLSurface egl_surface;
73#endif
75
76extern void X11_SetNetWMState(_THIS, Window xwindow, Uint32 flags);
77extern Uint32 X11_GetNetWMState(_THIS, Window xwindow);
78
80extern int X11_CreateWindowFrom(_THIS, SDL_Window * window, const void *data);
81extern char *X11_GetWindowTitle(_THIS, Window xwindow);
87extern int X11_GetWindowBordersSize(_THIS, SDL_Window * window, int *top, int *left, int *bottom, int *right);
88extern int X11_SetWindowOpacity(_THIS, SDL_Window * window, float opacity);
89extern int X11_SetWindowModalFor(_THIS, SDL_Window * modal_window, SDL_Window * parent_window);
105 struct SDL_SysWMinfo *info);
108
109#endif /* SDL_x11window_h_ */
110
111/* vi: set ts=4 sw=4 expandtab: */
#define _THIS
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
Definition: SDL_opengl.h:1974
GLenum GLenum GLsizei const GLuint GLboolean enabled
GLdouble GLdouble GLdouble GLdouble top
GLint left
GLbitfield flags
GLint GLint bottom
GLdouble GLdouble right
SDL_bool
Definition: SDL_stdinc.h:162
uint32_t Uint32
Definition: SDL_stdinc.h:203
uint16_t Uint16
Definition: SDL_stdinc.h:191
void X11_RaiseWindow(_THIS, SDL_Window *window)
void X11_SetWindowBordered(_THIS, SDL_Window *window, SDL_bool bordered)
int X11_SetWindowModalFor(_THIS, SDL_Window *modal_window, SDL_Window *parent_window)
int X11_CreateWindowFrom(_THIS, SDL_Window *window, const void *data)
void X11_MinimizeWindow(_THIS, SDL_Window *window)
int X11_SetWindowHitTest(SDL_Window *window, SDL_bool enabled)
void X11_SetWindowGrab(_THIS, SDL_Window *window, SDL_bool grabbed)
void X11_SetWindowTitle(_THIS, SDL_Window *window)
void X11_SetNetWMState(_THIS, Window xwindow, Uint32 flags)
void X11_SetWindowMinimumSize(_THIS, SDL_Window *window)
void X11_AcceptDragAndDrop(SDL_Window *window, SDL_bool accept)
void X11_SetWindowPosition(_THIS, SDL_Window *window)
char * X11_GetWindowTitle(_THIS, Window xwindow)
PendingFocusEnum
Definition: SDL_x11window.h:37
@ PENDING_FOCUS_NONE
Definition: SDL_x11window.h:38
@ PENDING_FOCUS_OUT
Definition: SDL_x11window.h:40
@ PENDING_FOCUS_IN
Definition: SDL_x11window.h:39
int X11_SetWindowGammaRamp(_THIS, SDL_Window *window, const Uint16 *ramp)
void X11_SetWindowIcon(_THIS, SDL_Window *window, SDL_Surface *icon)
void X11_MaximizeWindow(_THIS, SDL_Window *window)
void X11_HideWindow(_THIS, SDL_Window *window)
void X11_DestroyWindow(_THIS, SDL_Window *window)
int X11_SetWindowInputFocus(_THIS, SDL_Window *window)
void X11_SetWindowSize(_THIS, SDL_Window *window)
void X11_ShowWindow(_THIS, SDL_Window *window)
int X11_SetWindowOpacity(_THIS, SDL_Window *window, float opacity)
int X11_CreateWindow(_THIS, SDL_Window *window)
void X11_SetWindowFullscreen(_THIS, SDL_Window *window, SDL_VideoDisplay *display, SDL_bool fullscreen)
int X11_GetWindowBordersSize(_THIS, SDL_Window *window, int *top, int *left, int *bottom, int *right)
Uint32 X11_GetNetWMState(_THIS, Window xwindow)
void X11_SetWindowResizable(_THIS, SDL_Window *window, SDL_bool resizable)
SDL_bool X11_GetWindowWMInfo(_THIS, SDL_Window *window, struct SDL_SysWMinfo *info)
void X11_SetWindowMaximumSize(_THIS, SDL_Window *window)
void X11_RestoreWindow(_THIS, SDL_Window *window)
void * EGLSurface
Definition: egl.h:59
EGLSurface EGLNativeWindowType * window
Definition: eglext.h:1025
A collection of pixels used in software blitting.
Definition: SDL_surface.h:71
struct wl_display * display
XImage * ximage
Definition: SDL_x11window.h:55
Uint32 pending_focus_time
Definition: SDL_x11window.h:65
Uint32 last_focus_event_time
Definition: SDL_x11window.h:63
Visual * visual
Definition: SDL_x11window.h:48
SDL_bool use_mitshm
Definition: SDL_x11window.h:52
XShmSegmentInfo shminfo
Definition: SDL_x11window.h:53
Window xdnd_source
Definition: SDL_x11window.h:70
XConfigureEvent last_xconfigure
Definition: SDL_x11window.h:66
Colormap colormap
Definition: SDL_x11window.h:49
PendingFocusEnum pending_focus
Definition: SDL_x11window.h:64
unsigned long user_time
Definition: SDL_x11window.h:68
The type used to identify a window.
Definition: SDL_sysvideo.h:74