annotate SDL3/SDL_system.h @ 1:20d02a178406 default tip

*: check in everything else yay
author Paper <paper@tflc.us>
date Mon, 05 Jan 2026 02:15:46 -0500
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1 /*
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2 Simple DirectMedia Layer
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3 Copyright (C) 1997-2025 Sam Lantinga <slouken@libsdl.org>
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5 This software is provided 'as-is', without any express or implied
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6 warranty. In no event will the authors be held liable for any damages
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7 arising from the use of this software.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9 Permission is granted to anyone to use this software for any purpose,
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
10 including commercial applications, and to alter it and redistribute it
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
11 freely, subject to the following restrictions:
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
12
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
13 1. The origin of this software must not be misrepresented; you must not
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
14 claim that you wrote the original software. If you use this software
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
15 in a product, an acknowledgment in the product documentation would be
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
16 appreciated but is not required.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
17 2. Altered source versions must be plainly marked as such, and must not be
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
18 misrepresented as being the original software.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
19 3. This notice may not be removed or altered from any source distribution.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
20 */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
21
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
22 /**
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
23 * # CategorySystem
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
24 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
25 * Platform-specific SDL API functions. These are functions that deal with
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
26 * needs of specific operating systems, that didn't make sense to offer as
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
27 * platform-independent, generic APIs.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
28 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
29 * Most apps can make do without these functions, but they can be useful for
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
30 * integrating with other parts of a specific system, adding platform-specific
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
31 * polish to an app, or solving problems that only affect one target.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
32 */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
33
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
34 #ifndef SDL_system_h_
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
35 #define SDL_system_h_
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
36
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
37 #include <SDL3/SDL_stdinc.h>
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
38 #include <SDL3/SDL_error.h>
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
39 #include <SDL3/SDL_keyboard.h>
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
40 #include <SDL3/SDL_video.h>
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
41
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
42 #include <SDL3/SDL_begin_code.h>
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
43 /* Set up for C function definitions, even when using C++ */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
44 #ifdef __cplusplus
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
45 extern "C" {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
46 #endif
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
47
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
48
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
49 /*
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
50 * Platform specific functions for Windows
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
51 */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
52 #if defined(SDL_PLATFORM_WINDOWS)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
53
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
54 typedef struct tagMSG MSG;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
55
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
56 /**
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
57 * A callback to be used with SDL_SetWindowsMessageHook.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
58 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
59 * This callback may modify the message, and should return true if the message
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
60 * should continue to be processed, or false to prevent further processing.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
61 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
62 * As this is processing a message directly from the Windows event loop, this
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
63 * callback should do the minimum required work and return quickly.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
64 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
65 * \param userdata the app-defined pointer provided to
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
66 * SDL_SetWindowsMessageHook.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
67 * \param msg a pointer to a Win32 event structure to process.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
68 * \returns true to let event continue on, false to drop it.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
69 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
70 * \threadsafety This may only be called (by SDL) from the thread handling the
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
71 * Windows event loop.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
72 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
73 * \since This datatype is available since SDL 3.2.0.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
74 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
75 * \sa SDL_SetWindowsMessageHook
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
76 * \sa SDL_HINT_WINDOWS_ENABLE_MESSAGELOOP
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
77 */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
78 typedef bool (SDLCALL *SDL_WindowsMessageHook)(void *userdata, MSG *msg);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
79
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
80 /**
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
81 * Set a callback for every Windows message, run before TranslateMessage().
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
82 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
83 * The callback may modify the message, and should return true if the message
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
84 * should continue to be processed, or false to prevent further processing.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
85 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
86 * \param callback the SDL_WindowsMessageHook function to call.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
87 * \param userdata a pointer to pass to every iteration of `callback`.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
88 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
89 * \since This function is available since SDL 3.2.0.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
90 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
91 * \sa SDL_WindowsMessageHook
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
92 * \sa SDL_HINT_WINDOWS_ENABLE_MESSAGELOOP
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
93 */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
94 extern SDL_DECLSPEC void SDLCALL SDL_SetWindowsMessageHook(SDL_WindowsMessageHook callback, void *userdata);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
95
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
96 #endif /* defined(SDL_PLATFORM_WINDOWS) */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
97
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
98 #if defined(SDL_PLATFORM_WIN32) || defined(SDL_PLATFORM_WINGDK)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
99
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
100 /**
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
101 * Get the D3D9 adapter index that matches the specified display.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
102 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
103 * The returned adapter index can be passed to `IDirect3D9::CreateDevice` and
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
104 * controls on which monitor a full screen application will appear.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
105 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
106 * \param displayID the instance of the display to query.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
107 * \returns the D3D9 adapter index on success or -1 on failure; call
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
108 * SDL_GetError() for more information.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
109 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
110 * \since This function is available since SDL 3.2.0.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
111 */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
112 extern SDL_DECLSPEC int SDLCALL SDL_GetDirect3D9AdapterIndex(SDL_DisplayID displayID);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
113
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
114 /**
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
115 * Get the DXGI Adapter and Output indices for the specified display.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
116 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
117 * The DXGI Adapter and Output indices can be passed to `EnumAdapters` and
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
118 * `EnumOutputs` respectively to get the objects required to create a DX10 or
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
119 * DX11 device and swap chain.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
120 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
121 * \param displayID the instance of the display to query.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
122 * \param adapterIndex a pointer to be filled in with the adapter index.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
123 * \param outputIndex a pointer to be filled in with the output index.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
124 * \returns true on success or false on failure; call SDL_GetError() for more
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
125 * information.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
126 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
127 * \since This function is available since SDL 3.2.0.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
128 */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
129 extern SDL_DECLSPEC bool SDLCALL SDL_GetDXGIOutputInfo(SDL_DisplayID displayID, int *adapterIndex, int *outputIndex);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
130
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
131 #endif /* defined(SDL_PLATFORM_WIN32) || defined(SDL_PLATFORM_WINGDK) */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
132
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
133
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
134 /*
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
135 * Platform specific functions for UNIX
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
136 */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
137
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
138 /* this is defined in Xlib's headers, just need a simple declaration here. */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
139 typedef union _XEvent XEvent;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
140
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
141 /**
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
142 * A callback to be used with SDL_SetX11EventHook.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
143 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
144 * This callback may modify the event, and should return true if the event
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
145 * should continue to be processed, or false to prevent further processing.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
146 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
147 * As this is processing an event directly from the X11 event loop, this
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
148 * callback should do the minimum required work and return quickly.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
149 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
150 * \param userdata the app-defined pointer provided to SDL_SetX11EventHook.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
151 * \param xevent a pointer to an Xlib XEvent union to process.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
152 * \returns true to let event continue on, false to drop it.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
153 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
154 * \threadsafety This may only be called (by SDL) from the thread handling the
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
155 * X11 event loop.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
156 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
157 * \since This datatype is available since SDL 3.2.0.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
158 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
159 * \sa SDL_SetX11EventHook
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
160 */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
161 typedef bool (SDLCALL *SDL_X11EventHook)(void *userdata, XEvent *xevent);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
162
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
163 /**
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
164 * Set a callback for every X11 event.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
165 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
166 * The callback may modify the event, and should return true if the event
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
167 * should continue to be processed, or false to prevent further processing.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
168 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
169 * \param callback the SDL_X11EventHook function to call.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
170 * \param userdata a pointer to pass to every iteration of `callback`.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
171 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
172 * \since This function is available since SDL 3.2.0.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
173 */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
174 extern SDL_DECLSPEC void SDLCALL SDL_SetX11EventHook(SDL_X11EventHook callback, void *userdata);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
175
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
176 /* Platform specific functions for Linux*/
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
177 #ifdef SDL_PLATFORM_LINUX
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
178
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
179 /**
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
180 * Sets the UNIX nice value for a thread.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
181 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
182 * This uses setpriority() if possible, and RealtimeKit if available.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
183 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
184 * \param threadID the Unix thread ID to change priority of.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
185 * \param priority the new, Unix-specific, priority value.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
186 * \returns true on success or false on failure; call SDL_GetError() for more
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
187 * information.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
188 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
189 * \since This function is available since SDL 3.2.0.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
190 */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
191 extern SDL_DECLSPEC bool SDLCALL SDL_SetLinuxThreadPriority(Sint64 threadID, int priority);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
192
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
193 /**
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
194 * Sets the priority (not nice level) and scheduling policy for a thread.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
195 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
196 * This uses setpriority() if possible, and RealtimeKit if available.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
197 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
198 * \param threadID the Unix thread ID to change priority of.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
199 * \param sdlPriority the new SDL_ThreadPriority value.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
200 * \param schedPolicy the new scheduling policy (SCHED_FIFO, SCHED_RR,
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
201 * SCHED_OTHER, etc...).
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
202 * \returns true on success or false on failure; call SDL_GetError() for more
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
203 * information.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
204 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
205 * \since This function is available since SDL 3.2.0.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
206 */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
207 extern SDL_DECLSPEC bool SDLCALL SDL_SetLinuxThreadPriorityAndPolicy(Sint64 threadID, int sdlPriority, int schedPolicy);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
208
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
209 #endif /* SDL_PLATFORM_LINUX */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
210
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
211 /*
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
212 * Platform specific functions for iOS
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
213 */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
214 #ifdef SDL_PLATFORM_IOS
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
215
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
216 /**
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
217 * The prototype for an Apple iOS animation callback.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
218 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
219 * This datatype is only useful on Apple iOS.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
220 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
221 * After passing a function pointer of this type to
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
222 * SDL_SetiOSAnimationCallback, the system will call that function pointer at
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
223 * a regular interval.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
224 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
225 * \param userdata what was passed as `callbackParam` to
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
226 * SDL_SetiOSAnimationCallback as `callbackParam`.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
227 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
228 * \since This datatype is available since SDL 3.2.0.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
229 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
230 * \sa SDL_SetiOSAnimationCallback
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
231 */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
232 typedef void (SDLCALL *SDL_iOSAnimationCallback)(void *userdata);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
233
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
234 /**
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
235 * Use this function to set the animation callback on Apple iOS.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
236 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
237 * The function prototype for `callback` is:
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
238 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
239 * ```c
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
240 * void callback(void *callbackParam);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
241 * ```
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
242 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
243 * Where its parameter, `callbackParam`, is what was passed as `callbackParam`
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
244 * to SDL_SetiOSAnimationCallback().
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
245 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
246 * This function is only available on Apple iOS.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
247 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
248 * For more information see:
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
249 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
250 * https://wiki.libsdl.org/SDL3/README-ios
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
251 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
252 * Note that if you use the "main callbacks" instead of a standard C `main`
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
253 * function, you don't have to use this API, as SDL will manage this for you.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
254 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
255 * Details on main callbacks are here:
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
256 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
257 * https://wiki.libsdl.org/SDL3/README-main-functions
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
258 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
259 * \param window the window for which the animation callback should be set.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
260 * \param interval the number of frames after which **callback** will be
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
261 * called.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
262 * \param callback the function to call for every frame.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
263 * \param callbackParam a pointer that is passed to `callback`.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
264 * \returns true on success or false on failure; call SDL_GetError() for more
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
265 * information.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
266 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
267 * \since This function is available since SDL 3.2.0.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
268 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
269 * \sa SDL_SetiOSEventPump
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
270 */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
271 extern SDL_DECLSPEC bool SDLCALL SDL_SetiOSAnimationCallback(SDL_Window *window, int interval, SDL_iOSAnimationCallback callback, void *callbackParam);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
272
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
273 /**
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
274 * Use this function to enable or disable the SDL event pump on Apple iOS.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
275 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
276 * This function is only available on Apple iOS.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
277 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
278 * \param enabled true to enable the event pump, false to disable it.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
279 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
280 * \since This function is available since SDL 3.2.0.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
281 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
282 * \sa SDL_SetiOSAnimationCallback
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
283 */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
284 extern SDL_DECLSPEC void SDLCALL SDL_SetiOSEventPump(bool enabled);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
285
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
286 #endif /* SDL_PLATFORM_IOS */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
287
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
288
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
289 /*
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
290 * Platform specific functions for Android
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
291 */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
292 #ifdef SDL_PLATFORM_ANDROID
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
293
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
294 /**
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
295 * Get the Android Java Native Interface Environment of the current thread.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
296 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
297 * This is the JNIEnv one needs to access the Java virtual machine from native
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
298 * code, and is needed for many Android APIs to be usable from C.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
299 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
300 * The prototype of the function in SDL's code actually declare a void* return
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
301 * type, even if the implementation returns a pointer to a JNIEnv. The
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
302 * rationale being that the SDL headers can avoid including jni.h.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
303 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
304 * \returns a pointer to Java native interface object (JNIEnv) to which the
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
305 * current thread is attached, or NULL on failure; call
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
306 * SDL_GetError() for more information.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
307 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
308 * \threadsafety It is safe to call this function from any thread.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
309 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
310 * \since This function is available since SDL 3.2.0.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
311 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
312 * \sa SDL_GetAndroidActivity
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
313 */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
314 extern SDL_DECLSPEC void * SDLCALL SDL_GetAndroidJNIEnv(void);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
315
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
316 /**
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
317 * Retrieve the Java instance of the Android activity class.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
318 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
319 * The prototype of the function in SDL's code actually declares a void*
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
320 * return type, even if the implementation returns a jobject. The rationale
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
321 * being that the SDL headers can avoid including jni.h.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
322 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
323 * The jobject returned by the function is a local reference and must be
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
324 * released by the caller. See the PushLocalFrame() and PopLocalFrame() or
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
325 * DeleteLocalRef() functions of the Java native interface:
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
326 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
327 * https://docs.oracle.com/javase/1.5.0/docs/guide/jni/spec/functions.html
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
328 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
329 * \returns the jobject representing the instance of the Activity class of the
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
330 * Android application, or NULL on failure; call SDL_GetError() for
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
331 * more information.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
332 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
333 * \threadsafety It is safe to call this function from any thread.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
334 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
335 * \since This function is available since SDL 3.2.0.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
336 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
337 * \sa SDL_GetAndroidJNIEnv
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
338 */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
339 extern SDL_DECLSPEC void * SDLCALL SDL_GetAndroidActivity(void);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
340
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
341 /**
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
342 * Query Android API level of the current device.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
343 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
344 * - API level 35: Android 15 (VANILLA_ICE_CREAM)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
345 * - API level 34: Android 14 (UPSIDE_DOWN_CAKE)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
346 * - API level 33: Android 13 (TIRAMISU)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
347 * - API level 32: Android 12L (S_V2)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
348 * - API level 31: Android 12 (S)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
349 * - API level 30: Android 11 (R)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
350 * - API level 29: Android 10 (Q)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
351 * - API level 28: Android 9 (P)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
352 * - API level 27: Android 8.1 (O_MR1)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
353 * - API level 26: Android 8.0 (O)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
354 * - API level 25: Android 7.1 (N_MR1)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
355 * - API level 24: Android 7.0 (N)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
356 * - API level 23: Android 6.0 (M)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
357 * - API level 22: Android 5.1 (LOLLIPOP_MR1)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
358 * - API level 21: Android 5.0 (LOLLIPOP, L)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
359 * - API level 20: Android 4.4W (KITKAT_WATCH)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
360 * - API level 19: Android 4.4 (KITKAT)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
361 * - API level 18: Android 4.3 (JELLY_BEAN_MR2)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
362 * - API level 17: Android 4.2 (JELLY_BEAN_MR1)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
363 * - API level 16: Android 4.1 (JELLY_BEAN)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
364 * - API level 15: Android 4.0.3 (ICE_CREAM_SANDWICH_MR1)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
365 * - API level 14: Android 4.0 (ICE_CREAM_SANDWICH)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
366 * - API level 13: Android 3.2 (HONEYCOMB_MR2)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
367 * - API level 12: Android 3.1 (HONEYCOMB_MR1)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
368 * - API level 11: Android 3.0 (HONEYCOMB)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
369 * - API level 10: Android 2.3.3 (GINGERBREAD_MR1)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
370 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
371 * \returns the Android API level.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
372 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
373 * \since This function is available since SDL 3.2.0.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
374 */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
375 extern SDL_DECLSPEC int SDLCALL SDL_GetAndroidSDKVersion(void);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
376
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
377 /**
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
378 * Query if the application is running on a Chromebook.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
379 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
380 * \returns true if this is a Chromebook, false otherwise.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
381 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
382 * \since This function is available since SDL 3.2.0.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
383 */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
384 extern SDL_DECLSPEC bool SDLCALL SDL_IsChromebook(void);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
385
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
386 /**
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
387 * Query if the application is running on a Samsung DeX docking station.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
388 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
389 * \returns true if this is a DeX docking station, false otherwise.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
390 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
391 * \since This function is available since SDL 3.2.0.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
392 */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
393 extern SDL_DECLSPEC bool SDLCALL SDL_IsDeXMode(void);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
394
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
395 /**
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
396 * Trigger the Android system back button behavior.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
397 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
398 * \threadsafety It is safe to call this function from any thread.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
399 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
400 * \since This function is available since SDL 3.2.0.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
401 */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
402 extern SDL_DECLSPEC void SDLCALL SDL_SendAndroidBackButton(void);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
403
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
404 /**
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
405 * See the official Android developer guide for more information:
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
406 * http://developer.android.com/guide/topics/data/data-storage.html
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
407 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
408 * \since This macro is available since SDL 3.2.0.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
409 */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
410 #define SDL_ANDROID_EXTERNAL_STORAGE_READ 0x01
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
411
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
412 /**
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
413 * See the official Android developer guide for more information:
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
414 * http://developer.android.com/guide/topics/data/data-storage.html
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
415 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
416 * \since This macro is available since SDL 3.2.0.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
417 */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
418 #define SDL_ANDROID_EXTERNAL_STORAGE_WRITE 0x02
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
419
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
420 /**
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
421 * Get the path used for internal storage for this Android application.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
422 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
423 * This path is unique to your application and cannot be written to by other
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
424 * applications.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
425 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
426 * Your internal storage path is typically:
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
427 * `/data/data/your.app.package/files`.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
428 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
429 * This is a C wrapper over `android.content.Context.getFilesDir()`:
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
430 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
431 * https://developer.android.com/reference/android/content/Context#getFilesDir()
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
432 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
433 * \returns the path used for internal storage or NULL on failure; call
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
434 * SDL_GetError() for more information.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
435 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
436 * \since This function is available since SDL 3.2.0.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
437 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
438 * \sa SDL_GetAndroidExternalStoragePath
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
439 * \sa SDL_GetAndroidCachePath
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
440 */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
441 extern SDL_DECLSPEC const char * SDLCALL SDL_GetAndroidInternalStoragePath(void);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
442
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
443 /**
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
444 * Get the current state of external storage for this Android application.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
445 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
446 * The current state of external storage, a bitmask of these values:
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
447 * `SDL_ANDROID_EXTERNAL_STORAGE_READ`, `SDL_ANDROID_EXTERNAL_STORAGE_WRITE`.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
448 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
449 * If external storage is currently unavailable, this will return 0.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
450 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
451 * \returns the current state of external storage, or 0 if external storage is
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
452 * currently unavailable.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
453 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
454 * \since This function is available since SDL 3.2.0.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
455 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
456 * \sa SDL_GetAndroidExternalStoragePath
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
457 */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
458 extern SDL_DECLSPEC Uint32 SDLCALL SDL_GetAndroidExternalStorageState(void);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
459
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
460 /**
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
461 * Get the path used for external storage for this Android application.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
462 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
463 * This path is unique to your application, but is public and can be written
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
464 * to by other applications.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
465 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
466 * Your external storage path is typically:
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
467 * `/storage/sdcard0/Android/data/your.app.package/files`.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
468 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
469 * This is a C wrapper over `android.content.Context.getExternalFilesDir()`:
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
470 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
471 * https://developer.android.com/reference/android/content/Context#getExternalFilesDir()
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
472 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
473 * \returns the path used for external storage for this application on success
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
474 * or NULL on failure; call SDL_GetError() for more information.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
475 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
476 * \since This function is available since SDL 3.2.0.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
477 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
478 * \sa SDL_GetAndroidExternalStorageState
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
479 * \sa SDL_GetAndroidInternalStoragePath
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
480 * \sa SDL_GetAndroidCachePath
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
481 */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
482 extern SDL_DECLSPEC const char * SDLCALL SDL_GetAndroidExternalStoragePath(void);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
483
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
484 /**
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
485 * Get the path used for caching data for this Android application.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
486 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
487 * This path is unique to your application, but is public and can be written
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
488 * to by other applications.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
489 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
490 * Your cache path is typically: `/data/data/your.app.package/cache/`.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
491 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
492 * This is a C wrapper over `android.content.Context.getCacheDir()`:
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
493 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
494 * https://developer.android.com/reference/android/content/Context#getCacheDir()
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
495 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
496 * \returns the path used for caches for this application on success or NULL
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
497 * on failure; call SDL_GetError() for more information.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
498 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
499 * \since This function is available since SDL 3.2.0.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
500 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
501 * \sa SDL_GetAndroidInternalStoragePath
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
502 * \sa SDL_GetAndroidExternalStoragePath
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
503 */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
504 extern SDL_DECLSPEC const char * SDLCALL SDL_GetAndroidCachePath(void);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
505
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
506 /**
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
507 * Callback that presents a response from a SDL_RequestAndroidPermission call.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
508 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
509 * \param userdata an app-controlled pointer that is passed to the callback.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
510 * \param permission the Android-specific permission name that was requested.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
511 * \param granted true if permission is granted, false if denied.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
512 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
513 * \since This datatype is available since SDL 3.2.0.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
514 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
515 * \sa SDL_RequestAndroidPermission
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
516 */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
517 typedef void (SDLCALL *SDL_RequestAndroidPermissionCallback)(void *userdata, const char *permission, bool granted);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
518
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
519 /**
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
520 * Request permissions at runtime, asynchronously.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
521 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
522 * You do not need to call this for built-in functionality of SDL; recording
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
523 * from a microphone or reading images from a camera, using standard SDL APIs,
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
524 * will manage permission requests for you.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
525 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
526 * This function never blocks. Instead, the app-supplied callback will be
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
527 * called when a decision has been made. This callback may happen on a
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
528 * different thread, and possibly much later, as it might wait on a user to
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
529 * respond to a system dialog. If permission has already been granted for a
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
530 * specific entitlement, the callback will still fire, probably on the current
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
531 * thread and before this function returns.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
532 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
533 * If the request submission fails, this function returns -1 and the callback
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
534 * will NOT be called, but this should only happen in catastrophic conditions,
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
535 * like memory running out. Normally there will be a yes or no to the request
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
536 * through the callback.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
537 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
538 * For the `permission` parameter, choose a value from here:
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
539 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
540 * https://developer.android.com/reference/android/Manifest.permission
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
541 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
542 * \param permission the permission to request.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
543 * \param cb the callback to trigger when the request has a response.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
544 * \param userdata an app-controlled pointer that is passed to the callback.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
545 * \returns true if the request was submitted, false if there was an error
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
546 * submitting. The result of the request is only ever reported
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
547 * through the callback, not this return value.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
548 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
549 * \threadsafety It is safe to call this function from any thread.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
550 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
551 * \since This function is available since SDL 3.2.0.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
552 */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
553 extern SDL_DECLSPEC bool SDLCALL SDL_RequestAndroidPermission(const char *permission, SDL_RequestAndroidPermissionCallback cb, void *userdata);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
554
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
555 /**
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
556 * Shows an Android toast notification.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
557 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
558 * Toasts are a sort of lightweight notification that are unique to Android.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
559 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
560 * https://developer.android.com/guide/topics/ui/notifiers/toasts
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
561 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
562 * Shows toast in UI thread.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
563 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
564 * For the `gravity` parameter, choose a value from here, or -1 if you don't
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
565 * have a preference:
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
566 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
567 * https://developer.android.com/reference/android/view/Gravity
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
568 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
569 * \param message text message to be shown.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
570 * \param duration 0=short, 1=long.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
571 * \param gravity where the notification should appear on the screen.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
572 * \param xoffset set this parameter only when gravity >=0.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
573 * \param yoffset set this parameter only when gravity >=0.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
574 * \returns true on success or false on failure; call SDL_GetError() for more
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
575 * information.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
576 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
577 * \threadsafety It is safe to call this function from any thread.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
578 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
579 * \since This function is available since SDL 3.2.0.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
580 */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
581 extern SDL_DECLSPEC bool SDLCALL SDL_ShowAndroidToast(const char *message, int duration, int gravity, int xoffset, int yoffset);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
582
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
583 /**
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
584 * Send a user command to SDLActivity.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
585 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
586 * Override "boolean onUnhandledMessage(Message msg)" to handle the message.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
587 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
588 * \param command user command that must be greater or equal to 0x8000.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
589 * \param param user parameter.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
590 * \returns true on success or false on failure; call SDL_GetError() for more
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
591 * information.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
592 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
593 * \threadsafety It is safe to call this function from any thread.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
594 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
595 * \since This function is available since SDL 3.2.0.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
596 */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
597 extern SDL_DECLSPEC bool SDLCALL SDL_SendAndroidMessage(Uint32 command, int param);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
598
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
599 #endif /* SDL_PLATFORM_ANDROID */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
600
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
601 /**
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
602 * Query if the current device is a tablet.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
603 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
604 * If SDL can't determine this, it will return false.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
605 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
606 * \returns true if the device is a tablet, false otherwise.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
607 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
608 * \since This function is available since SDL 3.2.0.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
609 */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
610 extern SDL_DECLSPEC bool SDLCALL SDL_IsTablet(void);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
611
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
612 /**
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
613 * Query if the current device is a TV.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
614 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
615 * If SDL can't determine this, it will return false.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
616 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
617 * \returns true if the device is a TV, false otherwise.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
618 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
619 * \since This function is available since SDL 3.2.0.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
620 */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
621 extern SDL_DECLSPEC bool SDLCALL SDL_IsTV(void);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
622
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
623 /**
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
624 * Application sandbox environment.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
625 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
626 * \since This enum is available since SDL 3.2.0.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
627 */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
628 typedef enum SDL_Sandbox
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
629 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
630 SDL_SANDBOX_NONE = 0,
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
631 SDL_SANDBOX_UNKNOWN_CONTAINER,
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
632 SDL_SANDBOX_FLATPAK,
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
633 SDL_SANDBOX_SNAP,
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
634 SDL_SANDBOX_MACOS
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
635 } SDL_Sandbox;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
636
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
637 /**
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
638 * Get the application sandbox environment, if any.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
639 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
640 * \returns the application sandbox environment or SDL_SANDBOX_NONE if the
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
641 * application is not running in a sandbox environment.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
642 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
643 * \since This function is available since SDL 3.2.0.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
644 */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
645 extern SDL_DECLSPEC SDL_Sandbox SDLCALL SDL_GetSandbox(void);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
646
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
647
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
648 /* Functions used by iOS app delegates to notify SDL about state changes. */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
649
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
650 /**
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
651 * Let iOS apps with external event handling report
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
652 * onApplicationWillTerminate.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
653 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
654 * This functions allows iOS apps that have their own event handling to hook
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
655 * into SDL to generate SDL events. This maps directly to an iOS-specific
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
656 * event, but since it doesn't do anything iOS-specific internally, it is
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
657 * available on all platforms, in case it might be useful for some specific
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
658 * paradigm. Most apps do not need to use this directly; SDL's internal event
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
659 * code will handle all this for windows created by SDL_CreateWindow!
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
660 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
661 * \threadsafety It is safe to call this function from any thread.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
662 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
663 * \since This function is available since SDL 3.2.0.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
664 */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
665 extern SDL_DECLSPEC void SDLCALL SDL_OnApplicationWillTerminate(void);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
666
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
667 /**
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
668 * Let iOS apps with external event handling report
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
669 * onApplicationDidReceiveMemoryWarning.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
670 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
671 * This functions allows iOS apps that have their own event handling to hook
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
672 * into SDL to generate SDL events. This maps directly to an iOS-specific
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
673 * event, but since it doesn't do anything iOS-specific internally, it is
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
674 * available on all platforms, in case it might be useful for some specific
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
675 * paradigm. Most apps do not need to use this directly; SDL's internal event
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
676 * code will handle all this for windows created by SDL_CreateWindow!
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
677 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
678 * \threadsafety It is safe to call this function from any thread.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
679 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
680 * \since This function is available since SDL 3.2.0.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
681 */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
682 extern SDL_DECLSPEC void SDLCALL SDL_OnApplicationDidReceiveMemoryWarning(void);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
683
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
684 /**
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
685 * Let iOS apps with external event handling report
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
686 * onApplicationWillResignActive.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
687 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
688 * This functions allows iOS apps that have their own event handling to hook
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
689 * into SDL to generate SDL events. This maps directly to an iOS-specific
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
690 * event, but since it doesn't do anything iOS-specific internally, it is
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
691 * available on all platforms, in case it might be useful for some specific
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
692 * paradigm. Most apps do not need to use this directly; SDL's internal event
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
693 * code will handle all this for windows created by SDL_CreateWindow!
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
694 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
695 * \threadsafety It is safe to call this function from any thread.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
696 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
697 * \since This function is available since SDL 3.2.0.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
698 */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
699 extern SDL_DECLSPEC void SDLCALL SDL_OnApplicationWillEnterBackground(void);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
700
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
701 /**
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
702 * Let iOS apps with external event handling report
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
703 * onApplicationDidEnterBackground.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
704 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
705 * This functions allows iOS apps that have their own event handling to hook
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
706 * into SDL to generate SDL events. This maps directly to an iOS-specific
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
707 * event, but since it doesn't do anything iOS-specific internally, it is
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
708 * available on all platforms, in case it might be useful for some specific
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
709 * paradigm. Most apps do not need to use this directly; SDL's internal event
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
710 * code will handle all this for windows created by SDL_CreateWindow!
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
711 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
712 * \threadsafety It is safe to call this function from any thread.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
713 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
714 * \since This function is available since SDL 3.2.0.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
715 */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
716 extern SDL_DECLSPEC void SDLCALL SDL_OnApplicationDidEnterBackground(void);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
717
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
718 /**
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
719 * Let iOS apps with external event handling report
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
720 * onApplicationWillEnterForeground.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
721 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
722 * This functions allows iOS apps that have their own event handling to hook
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
723 * into SDL to generate SDL events. This maps directly to an iOS-specific
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
724 * event, but since it doesn't do anything iOS-specific internally, it is
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
725 * available on all platforms, in case it might be useful for some specific
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
726 * paradigm. Most apps do not need to use this directly; SDL's internal event
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
727 * code will handle all this for windows created by SDL_CreateWindow!
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
728 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
729 * \threadsafety It is safe to call this function from any thread.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
730 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
731 * \since This function is available since SDL 3.2.0.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
732 */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
733 extern SDL_DECLSPEC void SDLCALL SDL_OnApplicationWillEnterForeground(void);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
734
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
735 /**
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
736 * Let iOS apps with external event handling report
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
737 * onApplicationDidBecomeActive.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
738 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
739 * This functions allows iOS apps that have their own event handling to hook
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
740 * into SDL to generate SDL events. This maps directly to an iOS-specific
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
741 * event, but since it doesn't do anything iOS-specific internally, it is
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
742 * available on all platforms, in case it might be useful for some specific
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
743 * paradigm. Most apps do not need to use this directly; SDL's internal event
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
744 * code will handle all this for windows created by SDL_CreateWindow!
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
745 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
746 * \threadsafety It is safe to call this function from any thread.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
747 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
748 * \since This function is available since SDL 3.2.0.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
749 */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
750 extern SDL_DECLSPEC void SDLCALL SDL_OnApplicationDidEnterForeground(void);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
751
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
752 #ifdef SDL_PLATFORM_IOS
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
753
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
754 /**
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
755 * Let iOS apps with external event handling report
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
756 * onApplicationDidChangeStatusBarOrientation.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
757 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
758 * This functions allows iOS apps that have their own event handling to hook
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
759 * into SDL to generate SDL events. This maps directly to an iOS-specific
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
760 * event, but since it doesn't do anything iOS-specific internally, it is
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
761 * available on all platforms, in case it might be useful for some specific
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
762 * paradigm. Most apps do not need to use this directly; SDL's internal event
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
763 * code will handle all this for windows created by SDL_CreateWindow!
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
764 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
765 * \threadsafety It is safe to call this function from any thread.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
766 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
767 * \since This function is available since SDL 3.2.0.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
768 */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
769 extern SDL_DECLSPEC void SDLCALL SDL_OnApplicationDidChangeStatusBarOrientation(void);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
770 #endif
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
771
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
772 /*
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
773 * Functions used only by GDK
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
774 */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
775 #ifdef SDL_PLATFORM_GDK
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
776 typedef struct XTaskQueueObject *XTaskQueueHandle;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
777 typedef struct XUser *XUserHandle;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
778
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
779 /**
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
780 * Gets a reference to the global async task queue handle for GDK,
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
781 * initializing if needed.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
782 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
783 * Once you are done with the task queue, you should call
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
784 * XTaskQueueCloseHandle to reduce the reference count to avoid a resource
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
785 * leak.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
786 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
787 * \param outTaskQueue a pointer to be filled in with task queue handle.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
788 * \returns true on success or false on failure; call SDL_GetError() for more
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
789 * information.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
790 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
791 * \since This function is available since SDL 3.2.0.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
792 */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
793 extern SDL_DECLSPEC bool SDLCALL SDL_GetGDKTaskQueue(XTaskQueueHandle *outTaskQueue);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
794
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
795 /**
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
796 * Gets a reference to the default user handle for GDK.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
797 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
798 * This is effectively a synchronous version of XUserAddAsync, which always
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
799 * prefers the default user and allows a sign-in UI.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
800 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
801 * \param outUserHandle a pointer to be filled in with the default user
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
802 * handle.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
803 * \returns true if success or false on failure; call SDL_GetError() for more
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
804 * information.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
805 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
806 * \since This function is available since SDL 3.2.0.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
807 */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
808 extern SDL_DECLSPEC bool SDLCALL SDL_GetGDKDefaultUser(XUserHandle *outUserHandle);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
809
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
810 #endif
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
811
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
812 /* Ends C function definitions when using C++ */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
813 #ifdef __cplusplus
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
814 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
815 #endif
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
816 #include <SDL3/SDL_close_code.h>
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
817
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
818 #endif /* SDL_system_h_ */