include/SDL_video.h


Log

Author Commit Date CI Message
Ryan C. Gordon a35cff63 2022-08-08T16:07:31 Sync wiki -> headers. (bridge got stuck, I'm just kicking it to get it working again, idk.)
Sam Lantinga 98bac00d 2022-08-08T11:26:52 Add `SDL_GetPointDisplayIndex` and `SDL_GetRectDisplayIndex` and re-implement `SDL_GetWindowDisplayIndex` in terms of `SDL_GetRectDisplayIndex` - This allows looking up the display index for an arbitrary location rather than requiring an active window to do so. - This change also reimplements the fallback display lookup that found the display with center closest to the window's center to instead find the display rect edge closest to the window center (this was done in the almost identical display lookup used in SDL_windowsmodes.c, which now uses `SDL_GetPointDisplayIndex`). In practice this should almost never be hit as it requires the window's center to not be enclosed by any display rect.
Shootfast 60d1944e 2022-07-06T20:12:30 SDL_video: Added SDL_GL_FLOATBUFFERS to allow Cocoa GL contexts to use EDR
SDL Wiki Bot 75f34fc5 2022-08-02T14:52:12 Sync SDL wiki -> header
Ryan C. Gordon 307b0b78 2022-08-02T10:50:51 video: Add a warning to the docs about using SDL_GetDisplayDPI. Fixes #5647.
Frank Praznik 41b89aec 2022-07-22T12:23:44 video: Improve the SDL_WINDOW_ALLOW_HIGHDPI flag documentation Extend the SDL_WINDOW_ALLOW_HIGHDPI flag documentation to stress the importance of querying the window drawable size after every window event to avoid rendering issues in a mixed-DPI environment.
Ryan C. Gordon 195ca499 2022-05-25T10:46:06 include/SDL_video.h: You can google it. This looks bad when reading Markdown as plain text, as one would do when reading the headers directly.
Ryan C. Gordon 7ce311be 2022-05-25T10:43:14 include/SDL_system.h: Fixed a link that was still hg.libsdl.org
SDL Wiki Bot a8e75487 2022-05-24T22:57:04 Sync wiki -> header
SDL Wiki Bot 17976556 2022-05-24T18:26:05 Sync wiki -> header
SDL Wiki Bot 6d1c3cd6 2022-03-27T17:11:05 Sync wiki -> header
Sam Lantinga 120c76c8 2022-01-03T09:40:00 Updated copyright for 2022
SDL Wiki Bot 3c71f893 2021-11-25T13:53:04 Sync wiki -> header
Cameron Gutman 57520cbd 2021-11-25T16:49:57 Improve documentation for input grabbing functions
Ryan C. Gordon cb4491ca 2021-11-10T16:05:03 Sync wiki -> header
Ryan C. Gordon b42ae3db 2021-11-10T15:21:01 Sync wiki -> header
Sam Lantinga fd79607e 2021-11-08T21:34:48 Added SDL_GetWindowMouseRect() Also guarantee that we won't get mouse movement outside the confining area, even if the OS implementation allows it (e.g. macOS)
Ethan Lee 4b42c05b 2021-11-08T13:52:48 video: Add SDL_SetWindowMouseRect. This API and implementation comes from the Unreal Engine branch of SDL, which originally called this "SDL_ConfineCursor". Some minor cleanup and changes for consistency with the rest of SDL_video, but there are two major changes: 1. The coordinate system has been changed so that `rect` is _window_ relative and not _screen_ relative, making it easier to implement without having global access to the display. 2. The UE version unset all rects when passing `NULL` as a parameter for `window`, this has been removed as it was an unused feature anyhow. Currently this is only implemented for X, but can be supported on Wayland and Windows at minimum too.
SDL Wiki Bot c7dafb15 2021-10-27T01:36:05 Sync wiki -> header
SDL Wiki Bot 6c134cf1 2021-10-22T00:39:04 Sync wiki -> header
Cacodemon345 19dee1cd 2021-10-22T06:37:20 Add SDL_GetWindowICCProfile(). (#4314) * Add SDL_GetWindowICCProfile * Add new SDL display events * Implement ICC profile change event for macOS * Implement ICC profile notification for Windows * Fix SDL_GetWindowICCProfile() for X11 * Fix compile errors
Ryan C. Gordon 1b49f092 2021-10-08T20:22:48 include: manually ran wikiheaders.pl and cleaned up the obvious issues.
SDL Wiki Bot ba9e2299 2021-09-18T14:19:04 Sync wiki -> header
Cameron Cawley 2d44bf7d 2021-09-17T20:24:10 Update description of SDL_SetWindowAlwaysOnTop
SDL Wiki Bot d856478f 2021-09-17T19:12:05 Sync wiki -> header
SDL Wiki Bot 74a1eb21 2021-09-17T19:10:07 Sync wiki -> header
YuGiOhJCJ 966728db 2021-08-16T06:43:37 include/SDL_video.h: Remove a comma at end of enumerator list
Sam Lantinga 14d58dc8 2021-07-27T14:23:40 Fixed the parameter documentation
Sam Lantinga f1633127 2021-07-24T13:41:55 Added a window flash operation to be explicit about window flash behavior
Sam Lantinga e1c3a250 2021-07-24T12:11:27 Changed SDL_FlashWindow() so it doesn't take a flash count, and added the hint SDL_HINT_WINDOW_FLASH_COUNT to control behavior on Windows
SDL Wiki Bot 7edffc57 2021-07-23T18:29:04 Sync wiki -> header
Ryan C. Gordon 37d4f003 2021-07-14T17:09:05 doxygen: Removed some cruft that accumulated during wiki migration.
Ryan C. Gordon c88eb7a8 2021-07-14T17:07:04 Sync wiki -> header.
Ryan C. Gordon f8c1fc49 2021-07-14T14:15:30 doxygen: Fix all the "\returns" so they work as part of complete sentences.
Ryan C. Gordon 0ac13dc2 2021-07-14T08:01:55 doxygen: Tweak SDL_FlashWindow brief description. So "e.g." doesn't look like the end of the sentence to wikiheaders.pl.
Jupeyy 64724db0 2021-06-04T19:55:30 Implement bare minimum for SDL_FlashWindow
Ethan Lee f309d064 2021-05-04T11:23:54 include: Document timing issue with SDL_GetWindowBordersSize
Ryan C. Gordon c54c16d3 2021-04-30T13:19:36 wayland: don't hang in SDL_GL_SwapBuffers if the compositor is ghosting us. If you hide a window on Mutter, for example, the compositor never requests new frames, which will cause Mesa to block forever in eglSwapBuffers to satisfy the swap interval. We now always set the swap interval to 0 and manage this ourselves, handing the frame to Wayland when it requests a new one, and timing out at 10fps just to keep apps moving if the compositor wants no frames at all. My understanding is that other protocols are coming that might improve upon this solution, but for now it solves the total hang. Fixes #4335.
Joseph Lyncheski a0a5da5d 2021-04-19T07:13:38 Add SDL_SetWindowAlwaysOnTop()
Sam Lantinga 40b0509e 2021-03-26T14:34:58 Fixed header documentation errors
Ryan C. Gordon c486959e 2021-03-24T10:47:03 headers: Fix up bullet lists, now that wikiheaders.pl can handle them.
Ryan C. Gordon 7c08b049 2021-03-23T15:36:12 headers: a few minor documentation corrections.
Ryan C. Gordon 3f40396d 2021-03-21T14:18:39 First shot at merging the wiki documentation into the headers.
Cameron Gutman 6b057c67 2021-01-26T19:16:17 Expose separate keyboard and mouse grab support This adds SDL_SetWindowKeyboardGrab(), SDL_GetWindowKeyboardGrab(), SDL_SetWindowMouseGrab(), SDL_GetWindowMouseGrab(), and new SDL_WINDOW_KEYBOARD_GRABBED flag. It also updates the test harness to exercise this functionality and makes a minor fix to X11 that I missed in https://hg.libsdl.org/SDL/rev/02a2d609369b To fit in with this new support, SDL_WINDOW_INPUT_CAPTURE has been renamed to SDL_WINDOW_MOUSE_CAPTURE with the old name remaining as an alias for backwards compatibility with older code.
Sam Lantinga 9130f7c3 2021-01-02T10:25:38 Updated copyright for 2021
Ozkan Sezer e58cc5fa 2020-10-09T03:28:30 minor whitespace fix
Ozkan Sezer 3aa418f4 2020-10-09T02:50:15 SDL_video.h (SDL_DisplayEventID): remove comma at end of enumerator list
Sam Lantinga 76980e30 2020-10-08T16:42:20 Added events for dynamically connecting and disconnecting displays, with an iOS implementation
Ryan C. Gordon a7916890 2020-04-10T00:37:35 metal: Added some support interfaces to Apple's Metal API (thanks, Caleb!). Caleb Cornett's comments: "A few weeks ago, Alex added a partial Metal API to SDL2: https://hg.libsdl.org/SDL/rev/22c8e7cd8d38 I noticed it was missing a few features that would help Metal become a first-class citizen in SDL, so I went ahead and wrote them! Here are the new APIs: 1. SDL_WINDOW_METAL flag for SDL_CreateWindow(). This allows the programmer to specify that they intend to create a window for use with SDL_MetalView. The flag is used to ensure correct usage of the API and to prevent accidentally defaulting to OpenGL on iOS. 2. SDL_Metal_GetLayer(). This function takes a SDL_MetalView and returns a pointer to the view's backing CAMetalLayer. This simplifies things considerably, since in the current version of the SDL_Metal API the programmer is required to bridge-cast a SDL_MetalView handle to an NSView or UIView (depending on the platform) and then extract the layer from there. SDL_Metal_GetLayer automatically handles all of that, making the operation simple and cross-platform. 3. SDL_Metal_GetDrawableSize(). This function already exists in the current SDL_Metal API (and is used behind-the-scenes for SDL_Vulkan_GetDrawableSize on Apple platforms) but was not publicly exposed. My patch exposes this function for public use. It works just like you'd expect. Tested on macOS 10.14 and iOS 12.4." Fixes Bugzilla #4796.
Sam Lantinga a8780c6a 2020-01-16T20:49:25 Updated copyright date for 2020
Ryan C. Gordon eb066a71 2019-10-15T14:17:32 include: Removed a FIXME comment. Using (1 << 14) instead of 0x4000 might be clearer for the maintainer, but it makes it harder to look up these flags when debugging an app. The value has to be written once by one person, the has to be read by tons of people over and over.
Sam Lantinga 5e13087b 2019-01-04T22:01:14 Updated copyright for 2019
Ozkan Sezer afc1738e 2018-09-07T10:47:50 SDL_sensor.h, SDL_video.h: remove comma at end of enumerator lists. Avoids gcc -pedantic warnings, closes bug #4253.
Sam Lantinga f225af0c 2018-08-22T21:48:28 Added SDL_GetDisplayOrientation() to get the display orientation, and added a new event SDL_DISPLAYEVENT to notify the application when the orientation changes. Documented the values returned by the accelerometer and gyroscope sensors
Mark Callow 69958441 2018-02-21T09:58:21 Fix high-dpi support on macOS and simplify it and iOS variant. The detault drawableSize for a CAMetalLayer is its bounds x its scale. So it is sufficient to set the *layer's* scale to the desired value.
Sam Lantinga e3cc5b2c 2018-01-03T10:03:25 Updated copyright for 2018
Sam Lantinga 14452e95 2017-12-04T20:21:52 Fixed typos (thanks Martin!)
Sam Lantinga 569c222c 2017-09-09T11:04:35 Updated documentation so it's clear you should use SDL_SetWindowDisplayMode() to change the size of fullscreen windows.
Ryan C. Gordon a12989f9 2017-09-03T13:20:33 vulkan: Changed SDL_WINDOW_VULKAN value to match Tizen's fork.
Ryan C. Gordon 25e3a1ec 2017-08-27T22:15:57 vulkan: Initial Vulkan support! This work was done by Jacob Lifshay and Mark Callow; I'm just merging it into revision control.
Ryan C. Gordon d8fc70ea 2017-08-24T21:30:53 opengl: add support for GL_KHR_no_error. This is completely untested! Fixes Bugzilla #3721.
Ryan C. Gordon 01e0d8fc 2017-08-19T15:02:03 opengl: Add support for [GLX|WGL]_ARB_create_context_robustness. This patch was originally written by Marc Di Luzio for glX and enhanced by Maximilian Malek for WGL, etc. Thanks to both of you! Fixes Bugzilla #3643. Fixes Bugzilla #3735.
Sam Lantinga e10a98d2 2017-07-31T12:57:15 Fixed bug 3720 - SDL_GL_GetAttribute doesn't check for initialized video driver Simon Hug SDL_GL_GetAttribute doesn't check if a video driver has been initialized and will access the SDL_VideoDevice pointer, which is NULL at that point. I think all of the attributes require an initialized driver, so a simple NULL check should fix it. Patch is attached.
Philipp Wiesemann cbcc256f 2017-06-04T23:15:39 Fixed comments in headers for doxygen output.
Sam Lantinga ccf0566c 2017-05-16T06:30:39 SDL - add SDL_WINDOW_VULKAN and make Android_CreateWindow only create an EGLSurface when SDL_WINDOW_VULKAN is not present. This makes it so the ANativeWindow* can be used with vkCreateAndroidSurfaceKHR, otherwise it will fail because having both an EGLSurface and VkSurfaceKHR attached to a window is not allowed according to the Vulkan spec: "In particular, only one VkSurfaceKHR can exist at a time for a given window. Similarly, a native window cannot be used by both a VkSurfaceKHR and EGLSurface simultaneously" CR: SamL
Sam Lantinga 45b774e3 2017-01-01T18:33:28 Updated copyright for 2017
Sam Lantinga 8414c3d4 2016-12-11T12:01:44 Fixed ABI, don't change the return type of SDL_GL_SwapWindow()
Sam Lantinga 524bf3c2 2016-12-09T01:47:43 Fixed bug 3513 - SDL_GL_SwapWindow does not return error status Return an error code from SDL_GL_SwapWindow(), like the other SDL APIs.
Sam Lantinga 36156335 2016-11-20T21:34:54 Renaming of guard header names to quiet -Wreserved-id-macro Patch contributed by Sylvain
Sam Lantinga 614cb35a 2016-10-01T13:35:36 Fixed bug 3165 - define numbers don't match types in Swift C.W. Betts Swift is very strict with types, so much that those of different signedness/size must be cast. Most of the defines are imported as 32-bit signed integers, while the corresponding field in a struct is a 32-bit unsigned integer. Appending a "u" would cause the defined types to be imported as 32-bit unsigned integers.
Ryan C. Gordon 4f4c4b62 2016-09-29T22:52:41 Added SDL_SetWindowResizable(). (thanks, Ethan!)
Philipp Wiesemann f6f9350a 2016-08-17T21:05:00 Added link in header comment.
Philipp Wiesemann 24bc00a8 2016-08-03T22:39:44 Fixed two old identifiers in header comments.
Philipp Wiesemann 6255c858 2016-05-20T22:18:15 Updated documentation of SDL_IsScreenSaverEnabled(). The screensaver is deactivated by default since SDL 2.0.2.
Philipp Wiesemann cfe3f261 2016-05-11T21:09:45 Updated documentation of SDL_CreateWindow() and SDL_CreateWindowFrom().
Philipp Wiesemann 1a26c0c8 2016-01-06T22:38:35 Fixed doxygen warnings.
Ryan C. Gordon 3bdaf4c6 2016-01-05T02:46:10 Added SDL_SetWindowOpacity() and SDL_GetWindowOpacity(). This is currently implemented for X11, Cocoa, Windows, and DirectFB. This patch is based on work in Unreal Engine 4's fork of SDL, compliments of Epic Games.
Ryan C. Gordon 5696e88e 2016-01-05T02:29:06 Added SDL_GetWindowBordersSize(). This is currently only implemented for X11. This patch is based on work in Unreal Engine 4's fork of SDL, compliments of Epic Games.
Ryan C. Gordon e497e465 2016-01-05T02:28:56 Added SDL_SetWindowInputFocus(). This is currently only implemented for X11. This patch is based on work in Unreal Engine 4's fork of SDL, compliments of Epic Games.
Ryan C. Gordon dc532c70 2016-01-05T02:27:50 Added SDL_WINDOWEVENT_TAKE_FOCUS. This is for corner cases where a multi-window app is activated and wants to make a decision about where focus should go. This patch came from Unreal Engine 4's fork of SDL, compliments of Epic Games.
Ryan C. Gordon f2defe5e 2016-01-05T01:30:40 Added special window type flags. Specifically: always on top, skip taskbar, tooltip, utility, and popup menu. This is currently only implemented for X11. This patch is based on work in Unreal Engine 4's fork of SDL, compliments of Epic Games.
Ryan C. Gordon c3114975 2016-01-04T23:52:40 Added SDL_GetDisplayUsableBounds().
Sam Lantinga 42065e78 2016-01-02T10:10:34 Updated copyright to 2016
Philipp Wiesemann 4a93dae4 2016-01-01T17:39:55 Added brackets to function names in header comments so doxygen links them.
Alex Szpakowski 4aae0290 2015-12-31T21:16:43 Updated some header comments and iOS documentation to better clarify high-dpi / retina support and screen-coordinate sizes versus pixel sizes.
Alfred Reynolds 61c74150 2015-07-29T17:18:56 Add SDL_GetDisplayDPI routine and implement for Windows.
Philipp Wiesemann 0e45984f 2015-06-21T17:33:46 Fixed crash if initialization of EGL failed but was tried again later. The internal function SDL_EGL_LoadLibrary() did not delete and remove a mostly uninitialized data structure if loading the library first failed. A later try to use EGL then skipped initialization and assumed it was previously successful because the data structure now already existed. This led to at least one crash in the internal function SDL_EGL_ChooseConfig() because a NULL pointer was dereferenced to make a call to eglBindAPI().
Sam Lantinga 2c4a6ea0 2015-05-26T06:27:46 Updated the copyright year to 2015
Ryan C. Gordon aa4952fd 2015-04-21T10:10:59 Added SDL_WINDOWEVENT_HIT_TEST. This lets windows know when they are dropping a mouse event because their hit test reported something other than SDL_HITTEST_NORMAL. It lets them know exactly where in the event queue this happened. This patch is based on work in Unreal Engine 4's fork of SDL, compliments of Epic Games.
Ryan C. Gordon e0e04542 2015-04-21T09:46:48 Added a few FIXMEs.
Ryan C. Gordon d4aedf99 2015-04-21T09:45:58 Added SDL_SetWindowModalFor(). This is currently only implemented for X11. This patch is based on work in Unreal Engine 4's fork of SDL, compliments of Epic Games.
Ryan C. Gordon b72938c8 2015-04-20T12:22:44 Windows: Always set the system timer resolution to 1ms by default. An existing hint lets apps that don't need the timer resolution changed avoid this, to save battery, etc, but this fixes several problems in timing, audio callbacks not firing fast enough, etc. Fixes Bugzilla #2944.
Alex Szpakowski fe6c797c 2015-04-10T23:30:31 Fixed an iOS view orientation issue when SDL_GL_CreateContext or SDL_CreateRenderer is called.
Ryan C. Gordon a0e878aa 2015-03-28T00:48:03 Minor input grab clarifications. Clarify that grabbing the mouse only works with one window at a time; this was always true at the system level, though SDL could previously get confused by multiple simultaneous grabs, so now we explicitly break any existing grab before starting a new one and document it as such. Also track the window that is currently grabbed, and provide an API to query for that window. This makes it easy to automate mouse ungrabbing at breakpoints with gdb7's scripting, since the scripts can now know which window to ungrab. In 2.1, we should probably change this API to SDL_GrabInput(win) and SDL_UngrabInput(void), or something.
Marc Di Luzio f5d96416 2015-03-06T16:03:40 Allow setting of GL_CONTEXT_RELEASE_BEHAVIOR when creating the GL context when GLX_ARB_context_flush_control is available. This extension allows the user to specify whether a full flush is performed when making a context not current. The only way to set this currently is at context creation, so this patch provides that functionality. Defualt behaviour is set at FLUSH, as per the spec. This patch does not contain the changes to WGL, appleGL or other platforms as I do not have access to GL 4.5 hardware on those platforms. Full details on the use of KHR_context_flush_control can be found here: https://www.opengl.org/registry/specs/KHR/context_flush_control.txt
Edward Rudd b88ca1b4 2015-02-10T16:28:56 the last parameter of XChangeProperty is the number of elements.. and when the element format is 32.. the element is "long" so we have 5 long elements here. Yes this seems confusing as on mac+linux Long is either 32 or 64bits depending on the architecture, but this is how the X11 protocol is defined. Thus 5 is the correct value for the nelts here. Not 5 or 10 depending on the architecture. More info on the confusion https://bugs.freedesktop.org/show_bug.cgi?id=16802
Philipp Wiesemann b48e54aa 2015-01-26T22:00:29 Fixed bug 2802 - [patch] Fix android build compiling in wrong filesystem implementation Jonas Kulla The configure script didn't differentiate between Linux and Android, unconditionally compiling in the unix implementation of SDL_sysfilesystem.c. I'm probably one of the very few people building SDL for android using classic configure + standalone toolchain, so this has gone undetected all along.
David Ludwig 70438be2 2014-12-03T10:55:23 WinRT: fixed bug whereby SDL would override an app's default orientation WinRT apps can set a default, preferred orientation via a .appxmanifest file. SDL was overriding this on app startup, and making the app use all possible orientations (landscape and portrait). Thanks to Eric Wing for the heads up on this!
Philipp Wiesemann 9c398852 2014-11-22T22:20:40 Corrected header file documentation comment.
Pierre-Loup A. Griffais 24c86b55 2014-09-11T19:24:42 [X11] Reconcile logical keyboard state with physical state on FocusIn since the window system doesn't do it for us like other platforms. This prevents sticky keys and missed keys when going in and out of focus, for example Alt would appear to stick if switching away from an SDL app with Alt-Tab and had to be pressed again. CR: Sam