1 | /* |
2 | Simple DirectMedia Layer |
3 | Copyright (C) 1997-2025 Sam Lantinga <slouken@libsdl.org> |
4 | |
5 | This software is provided 'as-is', without any express or implied |
6 | warranty. In no event will the authors be held liable for any damages |
7 | arising from the use of this software. |
8 | |
9 | Permission is granted to anyone to use this software for any purpose, |
10 | including commercial applications, and to alter it and redistribute it |
11 | freely, subject to the following restrictions: |
12 | |
13 | 1. The origin of this software must not be misrepresented; you must not |
14 | claim that you wrote the original software. If you use this software |
15 | in a product, an acknowledgment in the product documentation would be |
16 | appreciated but is not required. |
17 | 2. Altered source versions must be plainly marked as such, and must not be |
18 | misrepresented as being the original software. |
19 | 3. This notice may not be removed or altered from any source distribution. |
20 | */ |
21 | |
22 | #ifndef SDL_video_c_h_ |
23 | #define SDL_video_c_h_ |
24 | |
25 | #include "SDL_internal.h" |
26 | |
27 | struct SDL_VideoDevice; |
28 | |
29 | /** |
30 | * Initialize the video subsystem, optionally specifying a video driver. |
31 | * |
32 | * This function initializes the video subsystem, setting up a connection to |
33 | * the window manager, etc, and determines the available display modes and |
34 | * pixel formats, but does not initialize a window or graphics mode. |
35 | * |
36 | * If you use this function and you haven't used the SDL_INIT_VIDEO flag with |
37 | * either SDL_Init() or SDL_InitSubSystem(), you should call SDL_VideoQuit() |
38 | * before calling SDL_Quit(). |
39 | * |
40 | * It is safe to call this function multiple times. SDL_VideoInit() will call |
41 | * SDL_VideoQuit() itself if the video subsystem has already been initialized. |
42 | * |
43 | * You can use SDL_GetNumVideoDrivers() and SDL_GetVideoDriver() to find a |
44 | * specific `driver_name`. |
45 | * |
46 | * \param driver_name the name of a video driver to initialize, or NULL for |
47 | * the default driver |
48 | * \returns true on success or false on failure; call |
49 | * SDL_GetError() for more information. |
50 | */ |
51 | extern bool SDL_VideoInit(const char *driver_name); |
52 | |
53 | /** |
54 | * Shut down the video subsystem, if initialized with SDL_VideoInit(). |
55 | * |
56 | * This function closes all windows, and restores the original video mode. |
57 | */ |
58 | extern void SDL_VideoQuit(void); |
59 | |
60 | extern bool SDL_SetWindowTextureVSync(struct SDL_VideoDevice *_this, SDL_Window *window, int vsync); |
61 | |
62 | #if defined(SDL_VIDEO_DRIVER_X11) || defined(SDL_VIDEO_DRIVER_WAYLAND) || defined(SDL_VIDEO_DRIVER_EMSCRIPTEN) |
63 | const char *SDL_GetCSSCursorName(SDL_SystemCursor id, const char **fallback_name); |
64 | #endif |
65 | |
66 | extern bool SDL_AddWindowRenderer(SDL_Window *window, SDL_Renderer *renderer); |
67 | extern void SDL_RemoveWindowRenderer(SDL_Window *window, SDL_Renderer *renderer); |
68 | |
69 | #endif // SDL_video_c_h_ |
70 | |