annotate SDL3/SDL_misc.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 * # CategoryMisc
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 * SDL API functions that don't fit elsewhere.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
26 */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
27
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
28 #ifndef SDL_misc_h_
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
29 #define SDL_misc_h_
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
30
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
31 #include <SDL3/SDL_stdinc.h>
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
32 #include <SDL3/SDL_error.h>
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 #include <SDL3/SDL_begin_code.h>
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
35
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
36 /* Set up for C function definitions, even when using C++ */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
37 #ifdef __cplusplus
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
38 extern "C" {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
39 #endif
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
40
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 * Open a URL/URI in the browser or other appropriate external application.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
43 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
44 * Open a URL in a separate, system-provided application. How this works will
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
45 * vary wildly depending on the platform. This will likely launch what makes
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
46 * sense to handle a specific URL's protocol (a web browser for `http://`,
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
47 * etc), but it might also be able to launch file managers for directories and
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
48 * other things.
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 * What happens when you open a URL varies wildly as well: your game window
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
51 * may lose focus (and may or may not lose focus if your game was fullscreen
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
52 * or grabbing input at the time). On mobile devices, your app will likely
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
53 * move to the background or your process might be paused. Any given platform
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
54 * may or may not handle a given URL.
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 * If this is unimplemented (or simply unavailable) for a platform, this will
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
57 * fail with an error. A successful result does not mean the URL loaded, just
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
58 * that we launched _something_ to handle it (or at least believe we did).
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
59 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
60 * All this to say: this function can be useful, but you should definitely
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
61 * test it on every platform you target.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
62 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
63 * \param url a valid URL/URI to open. Use `file:///full/path/to/file` for
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
64 * local files, if supported.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
65 * \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
66 * information.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
67 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
68 * \since This function is available since SDL 3.2.0.
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 extern SDL_DECLSPEC bool SDLCALL SDL_OpenURL(const char *url);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
71
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
72 /* Ends C function definitions when using C++ */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
73 #ifdef __cplusplus
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 #endif
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
76 #include <SDL3/SDL_close_code.h>
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 #endif /* SDL_misc_h_ */