include/SDL_video.h


Log

Author Commit Date CI Message
Eric Wasylishen 76392f4f 2023-01-11T19:45:01 Handle DPI scaling in SDL_GetWindowSurface Fixes DPI awareness of testdrawchessboard (previously, the surface was being created in points instead of pixels, resulting in the demo app only drawing in a corner of the screen on High-DPI displays) *_CreateWindowFramebuffer()/*_UpdateWindowFramebuffer(): are updated to use SDL_GetWindowSizeInPixels instead of SDL_GetWindowSize() or window->w/window->h. Most of the _CreateWindowFramebuffer backends are untested except for Windows. Fixes #7047 (cherry picked from commit 67c91353e01f6f2c0cc80c17eeddbad6def7cb01)
Sam Lantinga 36033e38 2023-06-10T08:54:36 Make it clear that you can't mix 2D rendering and the window surface API Also added functions to query and destroy the window surface so you can switch between modes if you want. See https://github.com/pygame-community/pygame-ce/issues/2190 for more details.
Sam Lantinga 0479df53 2023-01-09T09:48:21 Updated copyright for 2023
Sam Lantinga 264da8c1 2022-12-08T12:46:13 Added SDL_DISPLAYEVENT_MOVED to detect when display positioning changes
Sam Lantinga 1f87e9e2 2022-11-17T09:00:27 Updated patch notes for 2.26 release
SDL Wiki Bot 393acf63 2022-10-25T18:07:13 Sync SDL wiki -> header
Pierre Wendling f9785702 2022-09-18T13:22:07 N3DS: Deduce screen from window's display. This removes the need for a dedicated window creation flag.
Pierre Wendling 65527537 2021-03-30T04:32:39 N3DS port (squashed) A dedicated renderer using Citro3D would likely allow for better much better graphical performances.
SDL Wiki Bot 9df1af35 2022-10-09T15:44:07 Sync SDL wiki -> header
SDL Wiki Bot 4ca86dae 2022-10-05T23:26:14 Sync SDL wiki -> header
Noel Berry 00452e47 2022-08-24T11:25:13 Adding SDL_GetWindowSizeInPixels for window size in pixels (#6112)
Ryan C. Gordon 07b0ec53 2022-08-09T09:05:08 SDL_video.h: Added \since info to new APIs.
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