|
5f2a1231
|
2022-11-13T08:00:03
|
|
video: check graphics flags the same way as the type flags
|
|
22354b41
|
2022-11-12T08:29:15
|
|
video: simplify window-type check in SDL_CreateWindow
|
|
d09edcbc
|
2022-11-11T12:10:27
|
|
video: sync Metal_CreateView with GL_CreateContext and Vulkan_CreateSurface
no need to check if _this->Metal_CreateView, since it is already checked in Re(create)Window
|
|
b71d9274
|
2022-11-11T12:09:15
|
|
video: add NOT_AN_OPENGL_WINDOW define (similar to NOT_A_VULKAN_WINDOW)
|
|
36c6ed4b
|
2022-11-11T08:33:55
|
|
video: add SDL_DllNotSupported
- add SDL_DllNotSupported and use it to sync the behavior of SDL_GL_LoadLibrary with SDL_Vulkan_LoadLibrary
|
|
29cafa9c
|
2022-11-10T08:23:16
|
|
add SDL_ContextNotSupported and validate flags in SDL_RecreateWindow similar to SDL_CreateWindow
|
|
1008cc8e
|
2022-11-09T12:55:27
|
|
video: Add some braces to match SDL coding style.
|
|
ac3349fa
|
2022-11-09T09:11:04
|
|
solve FIXMEs in SDL_video.c
|
|
9e8d2f39
|
2022-10-27T13:54:53
|
|
video: Don't use texture framebuffer on Windows Subsystem for Linux.
Reference Issue #6333.
|
|
f9785702
|
2022-09-18T13:22:07
|
|
N3DS: Deduce screen from window's display.
This removes the need for a dedicated window creation flag.
|
|
65527537
|
2021-03-30T04:32:39
|
|
N3DS port (squashed)
A dedicated renderer using Citro3D would likely allow for better
much better graphical performances.
|
|
eac3d6d3
|
2022-10-04T10:46:42
|
|
SDL_video.c: fix variable 'i' may be uninitialized when used here "_this->name = bootstrap[i]->name;"
|
|
9e3c4b9f
|
2022-10-03T17:50:01
|
|
Use the correct platform defines
|
|
a2c57573
|
2022-09-01T10:47:24
|
|
video: check for "software" with SDL_HINT_FRAMEBUFFER_ACCELERATION.
We check for this value elsewhere but not in SDL_CreateWindowFramebuffer.
|
|
d744aafb
|
2022-09-15T01:00:12
|
|
Added support for simulated vsync in the renderer
This kicks in if the platform doesn't support vsync directly, or if the present fails for some reason (e.g. minimized on some platforms)
Fixes https://github.com/libsdl-org/SDL/issues/5134
|
|
69e4c770
|
2022-09-04T12:18:38
|
|
video: Make the mode switching function a NOP if mode switching is disabled
Instead of wrapping individual calls to SDL_SetDisplayModeForDisplay(), just check the flag in the function itself and make it a NOP that cannot fail if the flag is set. Silences some errant "SDL video driver doesn't support changing display mode" log errors.
|
|
5ffede35
|
2022-09-06T19:56:29
|
|
Fix https://github.com/libsdl-org/SDL/issues/6191
|
|
00452e47
|
2022-08-24T11:25:13
|
|
Adding SDL_GetWindowSizeInPixels for window size in pixels (#6112)
|
|
cc9cc202
|
2022-08-13T16:43:15
|
|
video: Add video device quirk flags and apply them to the video subsystem
Add quirk flags to the video device struct and add flags to allow video backend drivers to disable mode switching and disable unsetting the fullscreen mode when minimizing a window. As certain platforms can have multiple video backends compiled in at once, #ifdefs, as used by other platforms, aren't suitable as different backends on the same platform may not need the same quirks.
This replaces the formerly dedicated 'disable_display_mode_switching' boolean as additional quirks are needed by the Wayland backend. Helper functions have also been added to simplify reading the flag states.
|
|
7530bd74
|
2022-08-08T11:26:55
|
|
Fix right, bottom computation in `SDL_GetClosestPointOnRect` which should be exclusive, not inclusive
|
|
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.
|
|
0bcbdfe2
|
2022-06-23T16:10:41
|
|
video: dummy: Support evdev psuedo-device with no video.
|
|
60d1944e
|
2022-07-06T20:12:30
|
|
SDL_video: Added SDL_GL_FLOATBUFFERS to allow Cocoa GL contexts to use EDR
|
|
46f95a7a
|
2022-06-24T00:20:11
|
|
Create dummy PS2 Video driver
|
|
20a76b0e
|
2022-07-25T23:06:58
|
|
video: removed unused devindex argument from bootstrap's create method.
|
|
6bcde52d
|
2022-07-24T20:19:16
|
|
Further adjust implementation of `Cocoa_GetWindowDisplayIndex`
As discussed in PR review, there may be an off-chance that the index
returned doesn't match up with SDL's display indexing.
This change ensures that the indices match and adds a safety check for
off-screen windows.
|
|
b085c182
|
2022-07-04T16:38:05
|
|
make SDL_SetTextInputRect take a pointer to const
The documentation doesn't state that the argument is ever modified,
and no implementation does so currently.
This is a non-breaking change to guarantee as much to callers.
|
|
f317d619
|
2022-07-01T13:59:14
|
|
Xbox GDKX support (#5869)
* Xbox GDK support (14 squashed commits)
* Added basic keyboard testing
* Update readme
* Code review fixes
* Fixed issue where controller add/removal wasn't working (since the device notification events don't work on Xbox, have to use the joystick thread to poll XInput)
|
|
3b191580
|
2022-06-27T17:19:39
|
|
Windows GDK Support (#5830)
* Added GDK
* Simplfied checks in SDL_config_wingdk.h
* Added testgdk sample
* Added GDK readme
* Fixed error in merge of SDL_windows.h
* Additional GDK fixes
* OpenWatcom should not export _SDL_GDKGetTaskQueue
* Formatting fixes
* Moved initialization code into SDL_GDKRunApp
|
|
ab81a559
|
2022-06-07T02:01:27
|
|
Windows DPI scaling/highdpi support
Adds hint "SDL_WINDOWS_DPI_SCALING" which can be set to "1" to
change the SDL coordinate system units to be DPI-scaled points, rather
than pixels everywhere.
This means windows will be appropriately sized, even when created on
high-DPI displays with scaling.
e.g. requesting a 640x480 window from SDL, on a display with 125%
scaling in Windows display settings, will create a window with an
800x600 client area (in pixels).
Setting this to "1" implicitly requests process DPI awareness
(setting SDL_WINDOWS_DPI_AWARENESS is unnecessary),
and forces SDL_WINDOW_ALLOW_HIGHDPI on all windows.
|
|
5669743a
|
2022-05-19T09:45:57
|
|
Make sure SDL_CaptureMouse() is only called on the main thread
Windows handles mouse capture on a per-thread basis, and capture must be done on the thread used to create a window.
Fixes https://github.com/libsdl-org/SDL/issues/5577
|
|
0e6d4baa
|
2022-05-19T01:23:24
|
|
Fixed compile warning on gcc 11
|
|
e19a9a79
|
2022-05-18T15:29:59
|
|
Fixed a message box getting the mouse capture state out of sync
|
|
0cca71a8
|
2022-05-18T22:12:05
|
|
Use SDLCALL for callbacks in public APIs
|
|
06aca7ed
|
2022-05-18T10:09:24
|
|
Fixed warping back into the window when gaining focus with warp relative mode enabled
|
|
adac3bd1
|
2022-05-03T12:31:50
|
|
video: restore ability to disable fb accel via hint
Somewhere in code refactoring between .20 and .22 this check
was lost, and so the hint had no effect anymore.
|
|
fbd230bb
|
2022-05-03T17:51:49
|
|
Add support for the Nokia N-Gage (#5597)
* Add initial support for the Nokia N-Gage
* N-Gage: disable clipping for the time being, issue needs to be resolved later
* Move va_copy definition to SDL_internal.h
* Move stdlib.h include to SDL_config_ngage.h, much cleaner this way
* Remove redundant include, add HAVE_STDLIB_H
* Revert "N-Gage: disable clipping for the time being, issue needs to be resolved later"
This reverts commit 4f5f0fc36cc7f34fad05e45671dfa7b8dc32fd51.
* N-Gage: fix clipping issue by providing proper math functions
|
|
76afb858
|
2022-04-25T10:35:56
|
|
Introduces Cocoa_GetWindowDisplayIndex. This enable a proper management for dpi when switching between retina and non-retina displays.
|
|
2b529461
|
2022-04-15T11:51:02
|
|
video: Don't minimize fullscreen windows on focus loss by default when mode switching is disabled
When mode switching is disabled in a video backend, fullscreen windows are basically just fullscreen desktop windows with different internal scaling. As no mode switching occurs, there's no need to minimize them on focus loss by default. This can still be overridden by explicitly setting the internal hint for minimizing on focus loss.
This has the side effect of fixing a bug on GNOME, where, when a fullscreen Wayland window has it's focus lost and restored via alt+tab followed by switching back to windowed mode, the top portion of the window won't end up being obstructed by GNOME's top bar.
|
|
254fcc90
|
2022-04-18T09:03:14
|
|
Revert "video: Prefer Wayland over X11"
This reverts commit 8ceba27d6291f1195e13608033ec439aec621fc6.
SDL Wayland support is stable, but there are a number of issues with third-party software (NVIDIA drivers, libwayland event overflow, libdecor not handling plugin load failures, Steam overlay not working with Wayland, etc.) that make it better to default to X11 at this time.
Games which would like to prefer wayland when available can use the following code before SDL_Init():
SDL_SetHint(SDL_HINT_VIDEODRIVER, "wayland,x11");
Fixes https://github.com/libsdl-org/SDL/issues/5527
|
|
c1336b21
|
2022-04-17T12:43:32
|
|
hints: Make SDL_VIDEODRIVER and SDL_AUDIODRIVER formal hints.
They were just environment variables before.
Fixes #5528.
|
|
01b14e14
|
2022-04-12T08:49:19
|
|
avoid NullPointer in SDL_GL_MakeCurrent
|
|
4d76c9cb
|
2022-03-25T20:35:07
|
|
video: wayland: Use wp-viewporter for fullscreen with non-native resolutions
Wayland doesn't support mode switching, however Wayland compositors can support the wp_viewporter protocol, which allows for the mapping of arbitrarily sized buffer regions to output surfaces. Use this functionality, when available, for fullscreen output when using non-native display modes and/or when dealing with scaled desktops, which can incur significant overdraw without this extension.
This also allows for the exposure of arbitrarily sized, emulated display modes, which can be useful for legacy compatability.
|
|
4fe7b2cb
|
2022-03-24T11:00:43
|
|
static analysis: Fixed several complaints from codechecker.
There are still some pending Objective-C specific issues.
Reference issue #4600.
|
|
4b8d69a4
|
2022-03-22T17:09:44
|
|
Avoid trying to use texture framebuffers on emscripten
|
|
34fd83ca
|
2022-03-22T06:50:10
|
|
Don't try to hide foreign windows when destroying the SDL window representation
Fixes https://github.com/libsdl-org/SDL/issues/5432
|
|
e5f45455
|
2022-03-17T14:44:34
|
|
Added a hint to mark a foreign window as usable with OpenGL
Fixes https://github.com/libsdl-org/SDL/issues/2942
|
|
0bf8ccfb
|
2022-02-08T22:15:11
|
|
video: Add a hint to allow Vulkan surfaces on foreign windows
|
|
d14a1263
|
2022-03-11T17:45:17
|
|
IME Composition Truncation + SDL_IsTextInputShown + SDL_ClearComposition (#5398)
* Fixes for IME Composition Truncation + Addition of SDL_ClearComposition, SDL_IsTextInputShown
* Fixed: Documentation and code style issues raised during code review.
|
|
45833a14
|
2022-03-09T15:33:45
|
|
Prevent shadowing static variable '_this' with local paramter '_this' of SDL_CreateWindowTexture
|
|
a4a80c86
|
2022-03-09T15:21:55
|
|
Fix variable may be uninitialized when used here [-Wconditional-uninitialized]
|
|
2f7b885d
|
2022-02-28T16:30:34
|
|
Fix 'potentially uninitialized local pointer variable' error in UWP builds
|
|
b946e31e
|
2022-02-23T09:10:46
|
|
video: Allow unaccelerated SDL_HINT_FRAMEBUFFER_ACCELERATION renderers.
If the app requested a specific renderer, even if it's not the optimal path,
let them have it, because they might want to render with a specific GPU API
on top of the framebuffer pixels.
This fixes DosBox-X crashing on startup, which forces the hint to "opengl".
|
|
60ddb74c
|
2022-02-02T12:19:37
|
|
video: rework how we prepare a texture framebuffer.
Now we see if we can create an SDL_Renderer, and if that renderer reports
itself as "accelerated," and added some initial heuristics to the OpenGL
renderer to make better decisions about what qualifies as "accelerated."
This adds some FIXMEs that might be merely hypothetical, and removes the
old OpenGL checks from the video subsystem that probably weren't meaningful
in modern times. This will definitely need to improve the existing list
in the GL renderer, to catch things like llvmpipe, etc.
Reference issue #4624.
|
|
60deadba
|
2022-01-17T17:22:30
|
|
re-use return value of SDL_SetError/WIN_SetErrorFromHRESULT/SDL_OutOfMemory
|
|
ebdd5366
|
2022-01-17T16:26:02
|
|
use SDL_InvalidParamError or SDL_assert instead of custom SDL_SetError
|
|
e11ba0f5
|
2022-01-08T12:03:57
|
|
do not load/unload opengl library when SDL_WINDOW_METAL flag is changed
|
|
19ae71b2
|
2022-01-27T11:48:32
|
|
video: Don't add SDL_WINDOW_(METAL|OPENGL) to new windows if unsupported.
Fixes #4656.
(Better than the previous fix in 3044310518dbb2d4814b32c6521f332b8d69aae5.)
|
|
30443105
|
2022-01-26T21:10:15
|
|
video: Don't add SDL_WINDOW_METAL to new windows if not using Cocoa or UIKit.
Fixes #4656.
|
|
f37e4a94
|
2022-01-26T17:02:49
|
|
video: Don't check if we can use a "texture framebuffer" until needed.
This prevents SDL from making an OpenGL context and maybe throwing it away
immediately by default. It will now only do it when trying to request a
window framebuffer directly, or creating an SDL_Renderer with the "software"
backend, which makes that request itself.
The way SDL decides if it should use a "texture framebuffer" needs dramatic
updating, but this solves the immediate problem.
Reference Issue #4624.
|
|
8ceba27d
|
2021-04-17T12:07:38
|
|
video: Prefer Wayland over X11
|
|
2a0cde8f
|
2022-01-16T09:40:51
|
|
Always send SDL_WINDOWEVENT_SIZE_CHANGED when window is resized
SDL_WINDOWEVENT_SIZE_CHANGED is now sent even if the resulting size of the window does not match the requested size.
|
|
120c76c8
|
2022-01-03T09:40:00
|
|
Updated copyright for 2022
|
|
e4000c02
|
2021-12-31T10:30:51
|
|
video: SDL_GL_GetAttribute needs to operate on FBO 0.
If a different FBO is bound, this would return incorrect results.
Fixes #5082.
|
|
71e3998d
|
2021-11-23T17:56:46
|
|
Make SDL_VideoInit cleanup when errors occur before video driver creation.
|
|
0445c13a
|
2021-11-22T16:49:17
|
|
Remove 'malloc' from comment
|
|
98c98362
|
2021-11-10T11:04:51
|
|
Don't clobber the error in SDL_ShowMessageBox() if one has been set at
the platform level
Fixes https://github.com/libsdl-org/SDL/issues/4760
|
|
6c4b4ee7
|
2021-11-10T09:41:43
|
|
Don't assert on API parameters
This causes lots of spam in test automation and it's not clear it's useful to developers. If we need this level of validation, we should add a log category for it.
|
|
fed85778
|
2021-11-10T08:47:39
|
|
Update the orientation and display modes when the display settings change on Windows
Fixes https://github.com/libsdl-org/SDL/issues/1061
|
|
d2f75636
|
2021-11-09T11:53:59
|
|
When making the window centered it should use windowed mode size since it doesn't affect fullscreen windows
Fixes bug https://github.com/libsdl-org/SDL/issues/4750
|
|
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)
|
|
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.
|
|
25c71748
|
2020-02-13T21:55:08
|
|
Add a barebones RISC OS video driver
|
|
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
|
|
1c5b3e0e
|
2021-10-15T18:12:18
|
|
Don't center the mouse when gaining focus unless we're using relative mode warping
This is necessary now that we actually change the mouse position when calling SDL_WarpMouseInWindow() in relative mode.
|
|
9fae8f70
|
2021-08-29T15:33:58
|
|
Treat empty SDL_VIDEODRIVER var to check all video drivers.
|
|
629e9f82
|
2021-08-13T11:06:43
|
|
Fixed return value of SDL_GetGrabbedWindow() when we have an internal grab because of mouse relative mode
|
|
6aa1498b
|
2021-08-13T11:03:19
|
|
This assert wasn't correct, we set the internal grab for mouse relative mode as well.
|
|
016b02f2
|
2021-08-10T12:16:55
|
|
Fixed build, C89 doesn't allow non-constant static initializers
|
|
fcfd19db
|
2021-08-10T12:02:17
|
|
Added support for SDL_RENDERER_PRESENTVSYNC to the software renderer
This fixes https://github.com/libsdl-org/SDL/issues/4612
|
|
b3a989d0
|
2021-08-10T13:08:27
|
|
video: Fix false positives in driver name comparison
Without this change, driver names don't get matched correctly;
for example "x" can get matched with "x11" since it only checks
whether the string matches up to the length of the requested
driver name.
|
|
88674b4a
|
2021-08-04T13:17:35
|
|
Fixed build
|
|
c14813a8
|
2021-08-04T13:00:14
|
|
Fixed spacing
|
|
3cad447e
|
2021-08-04T12:57:51
|
|
Only update the window size if setting the display mode succeeded
|
|
0eb6f791
|
2021-05-21T13:48:14
|
|
SDL_SetWindowDisplayMode(): If already fullscreen, adjust window size
Otherwise only the display resolution is changed, but the SDL window size
(and for example the window-surface size) aren't adjusted accordingly
and thus don't fill the whole screen.
See #3313
|
|
72d81285
|
2021-05-19T18:47:56
|
|
Improve SDL_CreateWindow() fullscreen support on Windows
.. and maybe other platforms as well (though X11 was not affected)?
The issue was that passing a higher resolution than the current desktop
resolution to SDL_CreateWindow() with SDL_WINDOW_FULLSCREEN didn't switch
to that resolution (even though it did switch to lower resolutions).
When creating a fullscreen window, window->fullscreen wasn't even set
at all (only zeroed out), setting it only happened if the user explicitly
called SDL_SetWindowDisplayMode(). So without that, SDL_CreateWindow()
-> SDL_UpdateFullscreenMode() -> SDL_GetWindowDisplayMode() used the
resolution from window->windowed.w/h which were limited to the desktop size
due to some weird combination of WIN_AdjustWindowRectWithStyle() and
WIN_WindowProc() being called after a call to SetWindowPos().
fixes #3313
|
|
69518b9e
|
2021-07-29T17:09:24
|
|
Make sure we don't send a resize event while a window is being destroyed
This fixes https://github.com/libsdl-org/SDL/issues/3669
|
|
8e35ff5c
|
2021-07-28T14:20:29
|
|
By default minimize real fullscreen windows when they lose focus so the desktop video mode is restored.
This fixes https://github.com/libsdl-org/SDL/issues/4039
|
|
d80ef3e5
|
2021-07-26T22:51:24
|
|
SDL_VideoInit: silence 'may be used uninitialized' warning
src/video/SDL_video.c:475: warning: 'i' may be used uninitialized in this function
|
|
5ec69285
|
2021-04-02T06:16:09
|
|
Support comma-separated lists in SDL_VIDEODRIVER
|
|
f1633127
|
2021-07-24T13:41:55
|
|
Added a window flash operation to be explicit about window flash behavior
|
|
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
|
|
64724db0
|
2021-06-04T19:55:30
|
|
Implement bare minimum for SDL_FlashWindow
|
|
a0a5da5d
|
2021-04-19T07:13:38
|
|
Add SDL_SetWindowAlwaysOnTop()
|
|
27b74d33
|
2021-03-25T23:25:34
|
|
Implement Wayland_ShowMessageBox using Zenity
|
|
c8abc88c
|
2021-01-29T01:26:35
|
|
Add support for message box
|
|
3c1fe9ce
|
2021-02-12T23:46:01
|
|
WTF
|
|
b52e9459
|
2021-01-29T01:26:13
|
|
Add support for open URL
|
|
2d64e37e
|
2020-11-02T18:09:43
|
|
Initial rebase of xerpi's port
|
|
9b9d0d48
|
2021-02-15T11:49:09
|
|
mac/iOS: allow Metal in windows created without an explicit backend
Fixes SDL_CreateWindowAndRenderer (and similar situations) not choosing a Metal backend. See #3991.
Passing an explicit backend into CreateWindow, eg SDL_WINDOW_OPENGL or SDL_WINDOW_METAL, will still prevent the window from being used with other backend types.
|