| | |
| | | /* |
| | | Simple DirectMedia Layer |
| | | Copyright (C) 1997-2016 Sam Lantinga <slouken@libsdl.org> |
| | | Copyright (C) 1997-2018 Sam Lantinga <slouken@libsdl.org> |
| | | |
| | | This software is provided 'as-is', without any express or implied |
| | | warranty. In no event will the authors be held liable for any damages |
| | |
| | | * Header file for SDL video functions. |
| | | */ |
| | | |
| | | #ifndef _SDL_video_h |
| | | #define _SDL_video_h |
| | | #ifndef SDL_video_h_ |
| | | #define SDL_video_h_ |
| | | |
| | | #include "SDL_stdinc.h" |
| | | #include "SDL_pixels.h" |
| | |
| | | SDL_WINDOW_MOUSE_FOCUS = 0x00000400, /**< window has mouse focus */ |
| | | SDL_WINDOW_FULLSCREEN_DESKTOP = ( SDL_WINDOW_FULLSCREEN | 0x00001000 ), |
| | | SDL_WINDOW_FOREIGN = 0x00000800, /**< window not created by SDL */ |
| | | SDL_WINDOW_ALLOW_HIGHDPI = 0x00002000, /**< window should be created in high-DPI mode if supported */ |
| | | SDL_WINDOW_ALLOW_HIGHDPI = 0x00002000, /**< window should be created in high-DPI mode if supported. |
| | | On macOS NSHighResolutionCapable must be set true in the |
| | | application's Info.plist for this to have any effect. */ |
| | | SDL_WINDOW_MOUSE_CAPTURE = 0x00004000, /**< window has mouse captured (unrelated to INPUT_GRABBED) */ |
| | | SDL_WINDOW_ALWAYS_ON_TOP = 0x00008000, /**< window should always be above others */ |
| | | SDL_WINDOW_SKIP_TASKBAR = 0x00010000, /**< window should not be added to the taskbar */ |
| | | SDL_WINDOW_UTILITY = 0x00020000, /**< window should be treated as a utility window */ |
| | | SDL_WINDOW_TOOLTIP = 0x00040000, /**< window should be treated as a tooltip */ |
| | | SDL_WINDOW_POPUP_MENU = 0x00080000 /**< window should be treated as a popup menu */ |
| | | SDL_WINDOW_POPUP_MENU = 0x00080000, /**< window should be treated as a popup menu */ |
| | | SDL_WINDOW_VULKAN = 0x10000000 /**< window usable for Vulkan surface */ |
| | | } SDL_WindowFlags; |
| | | |
| | | /** |
| | |
| | | SDL_GL_CONTEXT_PROFILE_MASK, |
| | | SDL_GL_SHARE_WITH_CURRENT_CONTEXT, |
| | | SDL_GL_FRAMEBUFFER_SRGB_CAPABLE, |
| | | SDL_GL_CONTEXT_RELEASE_BEHAVIOR |
| | | SDL_GL_CONTEXT_RELEASE_BEHAVIOR, |
| | | SDL_GL_CONTEXT_RESET_NOTIFICATION, |
| | | SDL_GL_CONTEXT_NO_ERROR |
| | | } SDL_GLattr; |
| | | |
| | | typedef enum |
| | | { |
| | | SDL_GL_CONTEXT_PROFILE_CORE = 0x0001, |
| | | SDL_GL_CONTEXT_PROFILE_COMPATIBILITY = 0x0002, |
| | | SDL_GL_CONTEXT_PROFILE_ES = 0x0004 /* GLX_CONTEXT_ES2_PROFILE_BIT_EXT */ |
| | | SDL_GL_CONTEXT_PROFILE_ES = 0x0004 /**< GLX_CONTEXT_ES2_PROFILE_BIT_EXT */ |
| | | } SDL_GLprofile; |
| | | |
| | | typedef enum |
| | |
| | | SDL_GL_CONTEXT_RELEASE_BEHAVIOR_FLUSH = 0x0001 |
| | | } SDL_GLcontextReleaseFlag; |
| | | |
| | | typedef enum |
| | | { |
| | | SDL_GL_CONTEXT_RESET_NO_NOTIFICATION = 0x0000, |
| | | SDL_GL_CONTEXT_RESET_LOSE_CONTEXT = 0x0001 |
| | | } SDL_GLContextResetNotification; |
| | | |
| | | /* Function prototypes */ |
| | | |
| | |
| | | * ::SDL_WINDOW_HIDDEN, ::SDL_WINDOW_BORDERLESS, |
| | | * ::SDL_WINDOW_RESIZABLE, ::SDL_WINDOW_MAXIMIZED, |
| | | * ::SDL_WINDOW_MINIMIZED, ::SDL_WINDOW_INPUT_GRABBED, |
| | | * ::SDL_WINDOW_ALLOW_HIGHDPI. |
| | | * ::SDL_WINDOW_ALLOW_HIGHDPI, ::SDL_WINDOW_VULKAN. |
| | | * |
| | | * \return The created window, or NULL if window creation failed. |
| | | * |
| | | * If the window is created with the SDL_WINDOW_ALLOW_HIGHDPI flag, its size |
| | | * in pixels may differ from its size in screen coordinates on platforms with |
| | | * high-DPI support (e.g. iOS and Mac OS X). Use SDL_GetWindowSize() to query |
| | | * the client area's size in screen coordinates, and SDL_GL_GetDrawableSize() |
| | | * or SDL_GetRendererOutputSize() to query the drawable size in pixels. |
| | | * the client area's size in screen coordinates, and SDL_GL_GetDrawableSize(), |
| | | * SDL_Vulkan_GetDrawableSize(), or SDL_GetRendererOutputSize() to query the |
| | | * drawable size in pixels. |
| | | * |
| | | * If the window is created with any of the SDL_WINDOW_OPENGL or |
| | | * SDL_WINDOW_VULKAN flags, then the corresponding LoadLibrary function |
| | | * (SDL_GL_LoadLibrary or SDL_Vulkan_LoadLibrary) is called and the |
| | | * corresponding UnloadLibrary function is called by SDL_DestroyWindow(). |
| | | * |
| | | * If SDL_WINDOW_VULKAN is specified and there isn't a working Vulkan driver, |
| | | * SDL_CreateWindow() will fail because SDL_Vulkan_LoadLibrary() will fail. |
| | | * |
| | | * \note On non-Apple devices, SDL requires you to either not link to the |
| | | * Vulkan loader or link to a dynamic library version. This limitation |
| | | * may be removed in a future version of SDL. |
| | | * |
| | | * \sa SDL_DestroyWindow() |
| | | * \sa SDL_GL_LoadLibrary() |
| | | * \sa SDL_Vulkan_LoadLibrary() |
| | | */ |
| | | extern DECLSPEC SDL_Window * SDLCALL SDL_CreateWindow(const char *title, |
| | | int x, int y, int w, |
| | |
| | | * \param w The width of the window, in screen coordinates. Must be >0. |
| | | * \param h The height of the window, in screen coordinates. Must be >0. |
| | | * |
| | | * \note You can't change the size of a fullscreen window, it automatically |
| | | * matches the size of the display mode. |
| | | * \note Fullscreen windows automatically match the size of the display mode, |
| | | * and you should use SDL_SetWindowDisplayMode() to change their size. |
| | | * |
| | | * The window size in screen coordinates may differ from the size in pixels, if |
| | | * the window was created with SDL_WINDOW_ALLOW_HIGHDPI on a platform with |
| | |
| | | * SDL_GetRendererOutputSize() to get the real client area size in pixels. |
| | | * |
| | | * \sa SDL_GetWindowSize() |
| | | * \sa SDL_SetWindowDisplayMode() |
| | | */ |
| | | extern DECLSPEC void SDLCALL SDL_SetWindowSize(SDL_Window * window, int w, |
| | | int h); |
| | |
| | | * \param window The window which will be made transparent or opaque |
| | | * \param opacity Opacity (0.0f - transparent, 1.0f - opaque) This will be |
| | | * clamped internally between 0.0f and 1.0f. |
| | | * |
| | | * |
| | | * \return 0 on success, or -1 if setting the opacity isn't supported. |
| | | * |
| | | * \sa SDL_GetWindowOpacity() |
| | |
| | | * |
| | | * \param modal_window The window that should be modal |
| | | * \param parent_window The parent window |
| | | * |
| | | * |
| | | * \return 0 on success, or -1 otherwise. |
| | | */ |
| | | extern DECLSPEC int SDLCALL SDL_SetWindowModalFor(SDL_Window * modal_window, SDL_Window * parent_window); |
| | |
| | | * obscured by other windows. |
| | | * |
| | | * \param window The window that should get the input focus |
| | | * |
| | | * |
| | | * \return 0 on success, or -1 otherwise. |
| | | * \sa SDL_RaiseWindow() |
| | | */ |
| | |
| | | |
| | | /** |
| | | * \brief Set an OpenGL window attribute before window creation. |
| | | * |
| | | * \return 0 on success, or -1 if the attribute could not be set. |
| | | */ |
| | | extern DECLSPEC int SDLCALL SDL_GL_SetAttribute(SDL_GLattr attr, int value); |
| | | |
| | | /** |
| | | * \brief Get the actual value for an attribute from the current context. |
| | | * |
| | | * \return 0 on success, or -1 if the attribute could not be retrieved. |
| | | * The integer at \c value will be modified in either case. |
| | | */ |
| | | extern DECLSPEC int SDLCALL SDL_GL_GetAttribute(SDL_GLattr attr, int *value); |
| | | |
| | |
| | | #endif |
| | | #include "close_code.h" |
| | | |
| | | #endif /* _SDL_video_h */ |
| | | #endif /* SDL_video_h_ */ |
| | | |
| | | /* vi: set ts=4 sw=4 expandtab: */ |