mirror of
https://github.com/thunderbrewhq/thunderbrew
synced 2025-12-14 03:52:30 +00:00
chore(build): use SDL3
This commit is contained in:
parent
9d04a35d87
commit
b3c0734a9e
3286 changed files with 866354 additions and 554996 deletions
169
vendor/sdl-3.2.10/src/video/x11/SDL_x11window.h
vendored
Normal file
169
vendor/sdl-3.2.10/src/video/x11/SDL_x11window.h
vendored
Normal file
|
|
@ -0,0 +1,169 @@
|
|||
/*
|
||||
Simple DirectMedia Layer
|
||||
Copyright (C) 1997-2025 Sam Lantinga <slouken@libsdl.org>
|
||||
|
||||
This software is provided 'as-is', without any express or implied
|
||||
warranty. In no event will the authors be held liable for any damages
|
||||
arising from the use of this software.
|
||||
|
||||
Permission is granted to anyone to use this software for any purpose,
|
||||
including commercial applications, and to alter it and redistribute it
|
||||
freely, subject to the following restrictions:
|
||||
|
||||
1. The origin of this software must not be misrepresented; you must not
|
||||
claim that you wrote the original software. If you use this software
|
||||
in a product, an acknowledgment in the product documentation would be
|
||||
appreciated but is not required.
|
||||
2. Altered source versions must be plainly marked as such, and must not be
|
||||
misrepresented as being the original software.
|
||||
3. This notice may not be removed or altered from any source distribution.
|
||||
*/
|
||||
#include "SDL_internal.h"
|
||||
|
||||
#ifndef SDL_x11window_h_
|
||||
#define SDL_x11window_h_
|
||||
|
||||
/* We need to queue the focus in/out changes because they may occur during
|
||||
video mode changes and we can respond to them by triggering more mode
|
||||
changes.
|
||||
*/
|
||||
#define PENDING_FOCUS_TIME 200
|
||||
|
||||
#ifdef SDL_VIDEO_OPENGL_EGL
|
||||
#include <EGL/egl.h>
|
||||
#endif
|
||||
|
||||
typedef enum
|
||||
{
|
||||
PENDING_FOCUS_NONE,
|
||||
PENDING_FOCUS_IN,
|
||||
PENDING_FOCUS_OUT
|
||||
} PendingFocusEnum;
|
||||
|
||||
struct SDL_WindowData
|
||||
{
|
||||
SDL_Window *window;
|
||||
Window xwindow;
|
||||
Visual *visual;
|
||||
Colormap colormap;
|
||||
#ifndef NO_SHARED_MEMORY
|
||||
// MIT shared memory extension information
|
||||
bool use_mitshm;
|
||||
XShmSegmentInfo shminfo;
|
||||
#endif
|
||||
XImage *ximage;
|
||||
GC gc;
|
||||
XIC ic;
|
||||
bool created;
|
||||
int border_left;
|
||||
int border_right;
|
||||
int border_top;
|
||||
int border_bottom;
|
||||
bool xinput2_mouse_enabled;
|
||||
bool xinput2_keyboard_enabled;
|
||||
bool mouse_grabbed;
|
||||
Uint64 last_focus_event_time;
|
||||
PendingFocusEnum pending_focus;
|
||||
Uint64 pending_focus_time;
|
||||
bool pending_move;
|
||||
SDL_Point pending_move_point;
|
||||
XConfigureEvent last_xconfigure;
|
||||
struct SDL_VideoData *videodata;
|
||||
unsigned long user_time;
|
||||
Atom xdnd_req;
|
||||
Window xdnd_source;
|
||||
bool flashing_window;
|
||||
Uint64 flash_cancel_time;
|
||||
SDL_Window *keyboard_focus;
|
||||
#ifdef SDL_VIDEO_OPENGL_EGL
|
||||
EGLSurface egl_surface;
|
||||
#endif
|
||||
#ifdef SDL_VIDEO_DRIVER_X11_XFIXES
|
||||
bool pointer_barrier_active;
|
||||
PointerBarrier barrier[4];
|
||||
SDL_Rect barrier_rect;
|
||||
#endif // SDL_VIDEO_DRIVER_X11_XFIXES
|
||||
#ifdef SDL_VIDEO_DRIVER_X11_XSYNC
|
||||
XSyncCounter resize_counter;
|
||||
XSyncValue resize_id;
|
||||
bool resize_in_progress;
|
||||
#endif /* SDL_VIDEO_DRIVER_X11_XSYNC */
|
||||
|
||||
SDL_Rect expected;
|
||||
SDL_DisplayMode requested_fullscreen_mode;
|
||||
|
||||
enum
|
||||
{
|
||||
X11_PENDING_OP_NONE = 0x00,
|
||||
X11_PENDING_OP_RESTORE = 0x01,
|
||||
X11_PENDING_OP_MINIMIZE = 0x02,
|
||||
X11_PENDING_OP_MAXIMIZE = 0x04,
|
||||
X11_PENDING_OP_FULLSCREEN = 0x08,
|
||||
X11_PENDING_OP_MOVE = 0x10,
|
||||
X11_PENDING_OP_RESIZE = 0x20
|
||||
} pending_operation;
|
||||
|
||||
enum
|
||||
{
|
||||
X11_SIZE_MOVE_EVENTS_DISABLE = 0x01, // Events are completely disabled.
|
||||
X11_SIZE_MOVE_EVENTS_WAIT_FOR_BORDERS = 0x02, // Events are disabled until a _NET_FRAME_EXTENTS event arrives.
|
||||
} size_move_event_flags;
|
||||
|
||||
bool pending_size;
|
||||
bool pending_position;
|
||||
bool window_was_maximized;
|
||||
bool previous_borders_nonzero;
|
||||
bool toggle_borders;
|
||||
bool fullscreen_borders_forced_on;
|
||||
SDL_HitTestResult hit_test_result;
|
||||
|
||||
XPoint xim_spot;
|
||||
char *preedit_text;
|
||||
XIMFeedback *preedit_feedback;
|
||||
int preedit_length;
|
||||
int preedit_cursor;
|
||||
bool ime_needs_clear_composition;
|
||||
};
|
||||
|
||||
extern void X11_SetNetWMState(SDL_VideoDevice *_this, Window xwindow, SDL_WindowFlags flags);
|
||||
extern Uint32 X11_GetNetWMState(SDL_VideoDevice *_this, SDL_Window *window, Window xwindow);
|
||||
|
||||
extern bool X11_CreateWindow(SDL_VideoDevice *_this, SDL_Window *window, SDL_PropertiesID create_props);
|
||||
extern char *X11_GetWindowTitle(SDL_VideoDevice *_this, Window xwindow);
|
||||
extern void X11_SetWindowTitle(SDL_VideoDevice *_this, SDL_Window *window);
|
||||
extern bool X11_SetWindowIcon(SDL_VideoDevice *_this, SDL_Window *window, SDL_Surface *icon);
|
||||
extern bool X11_SetWindowPosition(SDL_VideoDevice *_this, SDL_Window *window);
|
||||
extern void X11_SetWindowMinimumSize(SDL_VideoDevice *_this, SDL_Window *window);
|
||||
extern void X11_SetWindowMaximumSize(SDL_VideoDevice *_this, SDL_Window *window);
|
||||
extern void X11_SetWindowAspectRatio(SDL_VideoDevice *_this, SDL_Window *window);
|
||||
extern bool X11_GetWindowBordersSize(SDL_VideoDevice *_this, SDL_Window *window, int *top, int *left, int *bottom, int *right);
|
||||
extern bool X11_SetWindowOpacity(SDL_VideoDevice *_this, SDL_Window *window, float opacity);
|
||||
extern bool X11_SetWindowParent(SDL_VideoDevice *_this, SDL_Window *window, SDL_Window *parent);
|
||||
extern bool X11_SetWindowModal(SDL_VideoDevice *_this, SDL_Window *window, bool modal);
|
||||
extern void X11_SetWindowSize(SDL_VideoDevice *_this, SDL_Window *window);
|
||||
extern void X11_ShowWindow(SDL_VideoDevice *_this, SDL_Window *window);
|
||||
extern void X11_HideWindow(SDL_VideoDevice *_this, SDL_Window *window);
|
||||
extern void X11_RaiseWindow(SDL_VideoDevice *_this, SDL_Window *window);
|
||||
extern void X11_MaximizeWindow(SDL_VideoDevice *_this, SDL_Window *window);
|
||||
extern void X11_MinimizeWindow(SDL_VideoDevice *_this, SDL_Window *window);
|
||||
extern void X11_RestoreWindow(SDL_VideoDevice *_this, SDL_Window *window);
|
||||
extern void X11_SetWindowBordered(SDL_VideoDevice *_this, SDL_Window *window, bool bordered);
|
||||
extern void X11_SetWindowResizable(SDL_VideoDevice *_this, SDL_Window *window, bool resizable);
|
||||
extern void X11_SetWindowAlwaysOnTop(SDL_VideoDevice *_this, SDL_Window *window, bool on_top);
|
||||
extern SDL_FullscreenResult X11_SetWindowFullscreen(SDL_VideoDevice *_this, SDL_Window *window, SDL_VideoDisplay *display, SDL_FullscreenOp fullscreen);
|
||||
extern void *X11_GetWindowICCProfile(SDL_VideoDevice *_this, SDL_Window *window, size_t *size);
|
||||
extern bool X11_SetWindowMouseGrab(SDL_VideoDevice *_this, SDL_Window *window, bool grabbed);
|
||||
extern bool X11_SetWindowKeyboardGrab(SDL_VideoDevice *_this, SDL_Window *window, bool grabbed);
|
||||
extern void X11_DestroyWindow(SDL_VideoDevice *_this, SDL_Window *window);
|
||||
extern bool X11_SetWindowHitTest(SDL_Window *window, bool enabled);
|
||||
extern void X11_AcceptDragAndDrop(SDL_Window *window, bool accept);
|
||||
extern bool X11_FlashWindow(SDL_VideoDevice *_this, SDL_Window *window, SDL_FlashOperation operation);
|
||||
extern void X11_ShowWindowSystemMenu(SDL_Window *window, int x, int y);
|
||||
extern bool X11_SyncWindow(SDL_VideoDevice *_this, SDL_Window *window);
|
||||
extern bool X11_SetWindowFocusable(SDL_VideoDevice *_this, SDL_Window *window, bool focusable);
|
||||
|
||||
extern bool SDL_X11_SetWindowTitle(Display *display, Window xwindow, char *title);
|
||||
extern void X11_UpdateWindowPosition(SDL_Window *window, bool use_current_position);
|
||||
extern void X11_SetWindowMinMax(SDL_Window *window, bool use_current);
|
||||
|
||||
#endif // SDL_x11window_h_
|
||||
Loading…
Add table
Add a link
Reference in a new issue