|
2248a549
|
2021-11-05T22:48:46
|
|
Update the focus in case we changed focus to a child window and then away from the application
In this case we'll get WM_KILLFOCUS when the child window is focused, but we'll retain focus on the top level window, but when we Alt-Tab away, we won't get another WM_KILLFOCUS or WM_NCACTIVATE, we get WM_ACTIVATE instead, so we need to check for focus updates in response to that as well.
|
|
a01aaf05
|
2021-10-30T21:42:07
|
|
Fixed compiler warning
|
|
1c256b89
|
2021-10-26T13:42:34
|
|
riscos: Fix enumerating screen modes
|
|
5a3c97f3
|
2021-10-25T22:55:02
|
|
riscos: Fix detection of the current mode
|
|
53b3db0c
|
2021-09-28T17:59:16
|
|
Handle the KMOD_SCROLL modifier on RISC OS
|
|
1268984e
|
2021-09-09T21:09:50
|
|
Implement mouse input on RISC OS
|
|
f7f54f0d
|
2021-08-06T23:38:46
|
|
Implement keyboard input on RISC OS
Partially based on a patch from http://www.riscos.info/websvn/listing.php?repname=gccsdk&path=%2Ftrunk%2Fautobuilder%2Flibraries%2Fsdl%2Flibsdl2%2F&rev=7174#a6401c766f408f1ea356e6977894cc6a5
Currently lacks support for mapping scancodes to keycodes.
|
|
f8a8ca3e
|
2021-08-05T23:16:29
|
|
Support proper mode switching on RISC OS
|
|
fe9bb747
|
2021-02-12T23:46:11
|
|
riscos: Refactor framebuffer code
|
|
25c71748
|
2020-02-13T21:55:08
|
|
Add a barebones RISC OS video driver
|
|
4d3da5b7
|
2021-10-26T21:51:29
|
|
riscos: Disable the mouse pointer for now
|
|
a5598649
|
2021-10-30T19:30:34
|
|
x11/wayland: Fix signal handling while blocking in WaitEventTimeout()
Add a new flag to avoid suppressing EINTR in SDL_IOReady(). Pass the
flag in WaitEventTimeout() to ensure that a SIGINT will wake up
SDL_WaitEvent() without another event coming in.
|
|
c97c4687
|
2021-10-30T15:56:54
|
|
core: Convert SDL_IOReady()'s 2nd parameter to flags
|
|
2bf36bfa
|
2021-10-24T21:28:04
|
|
wayland: Implement WaitEventTimeout() and SendWakeupEvent()
We can have spurious wakeups in WaitEventTimeout() due to Wayland events
that don't end up causing us to generate an SDL event. Fortunately for us,
SDL_WaitEventTimeout_Device() handles this situation properly by calling
WaitEventTimeout() again with an adjusted timeout.
|
|
9c799802
|
2021-10-26T15:18:26
|
|
Vita: fix IME input languages
|
|
408a93a1
|
2021-10-23T15:43:04
|
|
wayland: Use multi-thread event reading APIs
Wayland provides the prepare_read()/read_events() family of APIs for
reading from the display fd in a deadlock-free manner across multiple
threads in a multi-threaded application. Let's use those instead of
trying to roll our own solution using a mutex.
This fixes an issue where a call to SDL_GL_SwapWindow() doesn't swap
buffers if it happens to collide with SDL_PumpEvents() in the main
thread. It also allows coexistence with other code or toolkits in
our process that may want read and dispatch events themselves.
|
|
23e252bf
|
2021-10-02T14:57:40
|
|
DirectFB: provide RenderCopyEx via RenderGeometry
|
|
f499168c
|
2021-10-24T15:54:57
|
|
x11: Use SDL_IOReady() instead of calling select() directly
SDL_IOReady() properly handles EINTR and can use poll() if available.
|
|
ba4ef461
|
2021-10-23T15:28:13
|
|
macOS: Fix implicit integer downcast warnings
|
|
a76b73dd
|
2021-10-22T19:04:32
|
|
kmsdrm: Use SDL_PremultiplySurfaceAlphaToARGB8888() for cursor surface
Instead of taking a direct copy of the mouse cursor surface, and then
premultiplying on every BO upload (using the custom
legacy_alpha_premultiply_ARGB8888 function), use the new
SDL_PremultiplySurfaceAlphaToARGB8888() function, which converts a whole
surface at a time, once and save the result.
The already-premultiplied data is then copied from that to the BO on
each upload, adjusting for the stride (which the previous implementation
required to be equal to the width), thereby making the extra copy
slightly useful..
This also adds support for non-SDL_PIXELFORMAT_ARGB8888 surfaces.
|
|
b528d484
|
2021-10-22T16:59:46
|
|
wayland: Wayland cursors should use premultiplied alpha
It turns out that Wayland's WL_SHM_FORMAT_ARGB8888 format (and, indeed,
all wayland RGBA formats) should be treated as premultiplied. SDL
surfaces tend not to be premultiplied, and this is assumed by other
backends when dealing with cursors.
This change premultiplies the cursor surface in Wayland_CreateCursor()
using the new SDL_PremultiplySurfaceAlphaToARGB8888(). In so doing, it
also adds support for a wider range of input surfaces, including those
with non-ARGB8888 pixel formats, and those which don't have
pitch==width.
This should fix #4856
|
|
84808ea4
|
2021-10-22T17:48:32
|
|
video: Add SDL_PremultiplySurfaceAlphaToARGB8888()
A number of video backends need to get ARGB8888 formatted surfaces with
premultiplied alpha, typically for mouse cursors. Add a new function to
do this, based loosely on legacy_alpha_premultiply_ARGB8888() from the
KMSDRM backend.
The new function, SDL_PremultiplySurfaceAlphaToARGB8888() takes two
arguments:
- src: an SDL_Surface to be converted.
- dst: a buffer which is filled with premultiplied ARGB8888 data of the
same size as the surface (assuming pitch = w).
This is not heavily optimised: it just repeatedly calls SDL_GetRGBA() to
do the conversion, but should do for now.
|
|
007b5463
|
2021-10-21T22:50:33
|
|
video/uikit: Do not use setNeedsUpdateOfPrefersPointerLocked on iOS SDKs older than 14
|
|
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
|
|
bfd2f899
|
2021-10-19T17:29:23
|
|
Fixed grab handling when focus changes between windows in the same application
|
|
d9c44b65
|
2021-10-19T10:49:17
|
|
Allow Cocoa_VideoInit to succeed when current display mode has invalid flags
This fixes a specific issue seen on macOS 10.14.6 where a DELL E248WFP
Display connected to a 2014 Mac Mini with a scaled 1920x1080 resolution
selected and SDL_Init(SDL_INIT_VIDEO) failed with the error: "The video
driver did not add any displays".
The underlying cause was that the current 1080p display mode did not
have the flag kDisplayModeSafeFlag, the check for which was added in
a963e36, with the idea that certain display modes should not be
candidates for switching to in fullscreen exclusive mode. That may well
be the right thing to do for filtering down a list of candidate modes,
but it doesn't pay to be so picky about the current mode. After all,
this current mode was set by System Preferences, the picture does appear
correctly on screen, and other non-SDL based applications launch and run
correctly in this mode.
Therefore the fix is to have GetDisplayMode only filter out a mode based
on flags if it's part of a candidate list, but if it's the current mode
and it can possibly be converted to an SDL_DisplayMode, do so.
|
|
649a33ae
|
2021-10-18T23:00:43
|
|
X11: remove redundant 'wakeup_lock' mutex creation
|
|
0a0f6854
|
2021-10-18T14:10:56
|
|
SDL_os2video.c: missed replacing a use of libc function
|
|
7fb43643
|
2021-10-17T13:56:31
|
|
Don't process WM_INPUT when handling relative mode by warping the mouse cursor
|
|
06824b18
|
2021-10-17T19:50:39
|
|
Cleanup windows events after recent changes
Improves clarity without any functional changes
|
|
50f969c1
|
2021-10-17T22:02:19
|
|
Fixed bug #4841 - Out of bounds read (by 1 byte) in yuvnv12_rgb24_sseu
|
|
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.
|
|
a70a94e0
|
2021-10-15T18:11:19
|
|
Don't send a mouse leave event if the mouse is outside the window when gaining focus and in relative mode.
|
|
c583055a
|
2021-10-15T10:11:24
|
|
SDL_windowsevents.c (WIN_WindowProc): remove SAFE_AREA_X and SAFE_AREA_Y
Not used since commit https://github.com/libsdl-org/SDL/commit/a1fabca162091b50d6f7dd71879d028319e09d80
|
|
a1fabca1
|
2021-10-14T16:52:21
|
|
Removed mouse warping for local mice and improved warp handling for mouse over RDP
|
|
5e89b3c8
|
2021-10-14T11:46:07
|
|
Don't need to use raw input to track the mouse during mouse capture (thanks Brick!)
|
|
0b6a8211
|
2021-10-12T14:08:20
|
|
Messages posted on the same tick are not new
|
|
0789610c
|
2021-10-14T00:52:05
|
|
Add SDL_HINT_WINDOW_NO_ACTIVATION_WHEN_SHOWN
|
|
2423c514
|
2021-10-13T09:33:51
|
|
Work around hang in AAudioStream_write() during extended shared object loading while running in a debugger. Observed on a OnePlus 8T (KB2005) running Oxygen OS 11.0.10.10.KB05AA.
The observed behavior is that any nonzero timeout value would hang until the device was paused and resumed. And a zero timeout value would always return 0 frames written even when audio fragments could be heard. Making a manual timeout system unworkable.
None of the straightforward systems imply that there's a detectable problem before the call to AAudioStream_write(). And the callback set within AAudioStreamBuilder_setErrorCallback() does not get called as we enter the hang state.
I've found that AAudioStream_getTimestamp() will report an error state from another thread. So this change codifies that behavior a bit until a better fix or more root cause can be found.
|
|
6149e601
|
2021-10-13T00:03:56
|
|
remove IsWin10FCUorNewer() -- not used since commit 40ed9f75c9e1ed
|
|
311671a0
|
2021-10-12T23:50:02
|
|
fixed build after commit 6e356e20ad
|
|
6e356e20
|
2021-10-12T18:35:52
|
|
Fix mouse focus being set to null when a captured mouse cursor leaves the window.
|
|
40ed9f75
|
2021-10-08T10:05:27
|
|
Workaround for Windows occasionally ignoring SetCursorPos() calls
Also, since we're flushing mouse motion before and including the warp, we don't need the isWin10FCUorNewer hack to simulate mouse warp motion.
Fixes https://github.com/libsdl-org/SDL/issues/4339 and https://github.com/libsdl-org/SDL/issues/4165
|
|
16aeb8d0
|
2021-10-07T15:04:06
|
|
Guarantee that we don't dispatch any mouse motion from before or including the last mouse warp
|
|
649466f4
|
2021-10-07T13:28:44
|
|
Flush any pending mouse motion when warping the mouse cursor
Fixes https://github.com/libsdl-org/SDL/issues/4165
|
|
ad520573
|
2021-10-06T09:52:06
|
|
wayland: Only dispatch frame events in Wayland_GLES_SwapWindow
Dispatching all events in Wayland_GLES_SwapWindow leads to resizes being
acked before the program has a chance to handle the resize. This change
reduces jumping on fullscreen transition with apps that call
SDL_PollEvent before issuing any render calls.
|
|
dd95c9c8
|
2021-10-06T09:09:39
|
|
Moved focus click check into WIN_UpdateFocus() so we have the correct state when setting keyboard focus
Fixes https://github.com/libsdl-org/SDL/issues/4817
|
|
0d541e5a
|
2021-10-06T00:36:27
|
|
Revert "Fixed relative mode mouse events stopping if you click on the title bar"
This has been better fixed by b28ed02 or another related relative mouse mode change of @slouken in SDL 2.0.17 and as such can be reverted to reduce unneeded processing in WM_MOUSEMOVE
|
|
c542de92
|
2021-10-05T14:08:36
|
|
React to WM_NCACTIVATE instead of WM_SETFOCUS or WM_ACTIVATE for focus changes
See https://github.com/libsdl-org/SDL/pull/4293 and https://github.com/libsdl-org/SDL/issues/4450 for details
|
|
e92a639b
|
2021-10-04T23:00:28
|
|
replaced many uses of libc calls with SDL_ counterparts in os2 sources.
TODO: core/os2 and geniconv sources _must_ be updated, as well..
|
|
eadc8f93
|
2021-10-02T23:08:39
|
|
wayland: Cleanup some SDL_TryLockMutex() calls.
Check the result of these against 0 explicitly, so that it's obvious
we're bailing out on failure, not success.
|
|
25f9e32b
|
2021-10-02T16:52:43
|
|
wayland: Don't let multiple threads dispatch wayland events at once
wl_display_dispatch() will block if there are no events available, and
while we try to avoid this by using SDL_IOReady() to verify there are
events before calling it, there is a race condition between
SDL_IOReady() and wl_display_dispatch() if multiple threads are
involved.
This is made more likely by the fact that SDL_GL_SwapWindow() calls
wl_display_dispatch() if vsync is enabled, in order to wait for frame
events. Therefore any program which pumps events on a different thread
from SDL_GL_SwapWindow() could end up blocking in one or other of them
until another event arrives.
This change fixes this by wrapping wl_display_dispatch() in a new mutex,
which ensures only one thread can compete for wayland events at a time,
and hence the SDL_IOReady() check should successfully prevent either
from blocking.
|
|
632aca29
|
2021-10-01T16:17:38
|
|
Window input focus is based on WM_SETFOCUS and WM_KILLFOCUS as WM_ACTIVATE doesn't necessarily imply focus.
Hopefully resolves https://github.com/libsdl-org/SDL/issues/4450 and https://github.com/libsdl-org/SDL/pull/4293
|
|
77acd44f
|
2021-10-01T22:30:51
|
|
DirectFB: fixed creation of palette textures
|
|
83d60090
|
2021-09-30T23:47:37
|
|
DirectFB: add partial support for RenderGeometry
allow to fill triangles with color or texture
but only uniform vertex color is handled (not per vertex color)
|
|
c270949b
|
2021-09-28T18:07:22
|
|
Add a fast path for ARGB888->(A)BGR888 blending with pixel alpha
|
|
0fc43504
|
2021-09-27T16:41:43
|
|
wayland: Add support for XCURSOR_THEME/SIZE
|
|
7c050aa6
|
2021-09-27T13:53:16
|
|
egl: Don't fail to create a context if KHR_create_context_no_error is unsupported
|
|
35d04558
|
2021-09-27T16:57:09
|
|
video: wayland: Support displays with a 0 refresh rate
Some wayland compositors report the refresh rate as 0. Since we want to
force a minimum refresh rate of 10 frames worth, we were dividing by the
reported refresh rate, causing a divide-by-zero.
If the refresh rate is 0, instead force a frame every second if no frame
callbacks are received.
This fixes bug #4785
|
|
9672d581
|
2021-09-26T14:22:11
|
|
Need to check structure version before setting xdg_toplevel to NULL
|
|
b592e78f
|
2021-09-25T12:55:41
|
|
wayland: Expose xdg_toplevel to SysWM
|
|
477fcf52
|
2021-09-24T10:49:46
|
|
Fixed whitespace
|
|
db68af80
|
2021-09-24T10:49:44
|
|
Reduce the likelyhood that the mouse will hover over the taskbar or toast notification while in relative mode, which causes a mouse leave event.
This will still happen occasionally as the mouse is whipped around, if there is a window overlapping the game window, but it should happen less often now. This could even happen with the original code that warped the mouse every frame, so this should be a good compromise where we don't warp the mouse continously and we still keep the mouse in the safe area of the game window.
Note that notifications can be any size, so the safe area may need to be adjusted or even dynamically defined via a hint.
|
|
7ed415d2
|
2021-09-23T14:07:38
|
|
wayland: Reuse KeySymToUcs4 to replicate X11 keymap behavior
|
|
1a4e2e5e
|
2021-09-23T14:31:54
|
|
wayland: For text, ignore key events when Ctrl is held
Fixes #4695
|
|
0aff42a1
|
2021-09-23T00:02:44
|
|
egl: Group data fields before function pointers in SDL_EGL_VideoData.
|
|
0ad4956c
|
2021-09-23T00:00:46
|
|
egl: explicitly call eglBindAPI during SDL_GL_MakeCurrent.
The EGL API binding must be specified per-thread, per the docs.
Fixes #1820.
|
|
31477160
|
2021-09-22T09:27:41
|
|
egl: make an int into an SDL_bool.
|
|
287571fb
|
2021-09-22T17:40:57
|
|
Limit effect of in_title_click and focus_click_pending to only blocking cursor warping; without this all relative mouse motion was getting ignored when a window was activated via a mouse button
|
|
9b74623b
|
2021-09-22T13:52:36
|
|
wayland: Woops, forgot to assign cursor theme size...
|
|
8e54698a
|
2021-09-22T13:26:44
|
|
wayland: Add support for high-DPI cursors
|
|
345c161f
|
2021-09-22T09:06:45
|
|
Fixed some accidental uses of external C runtime functions
|
|
5d455cab
|
2021-09-21T18:15:11
|
|
Don't process raw input when the window is being dragged or clicked on.
|
|
0fd54f91
|
2021-09-21T18:15:11
|
|
Fixed using a tablet with raw input relative motion
Tested with a Wacom Cintiq Pro 16"
|
|
8fee82d1
|
2021-09-21T18:15:09
|
|
Improve relative motion handling over RDP
CR and research: @danielj
|
|
478f9eed
|
2021-09-20T10:20:04
|
|
x11: Don't include X11/extensions/extutil.h
We don't use it, it was a leftover from 1.2, I think, and it doesn't exist
on Solaris, so this should hopefully fix the build there.
This also means we don't need the configure/cmake checks for
SDL_VIDEO_DRIVER_X11_CONST_PARAM_XEXTADDDISPLAY, so that was removed also.
Fixes #1666.
|
|
8d1e0ca3
|
2021-09-16T12:48:39
|
|
Vita: add support for disabling 'screensaver' (screen dimming and suspend)
|
|
2a8938f2
|
2021-09-15T12:40:22
|
|
Fixed: Whitespace being striped from the end of IME strings incorrectly + Regression with SDL_SetTextInputRect (#4752)
* Fixed: Whitespace being striped from the end of IME strings incorrectly
* Fixed: Google IME Candidate Window not placing correctly
* Why are PostBuild events stored in the vcxproj and not a user file?
* Revert SDL.vcxproj properly...
* Remove whitespace as per code review
* Fix Werror=declaration-after-statement error in code
|
|
ce177049
|
2021-09-12T09:34:41
|
|
Vita: Allow completely skipping pvr init to override apphint from app
|
|
b2504b5d
|
2021-09-11T20:08:03
|
|
Fix typos
|
|
e4556594
|
2021-09-10T21:13:51
|
|
Simplify Backspace and Enter
|
|
f162d9ee
|
2021-09-10T21:02:22
|
|
Fix Indentation
|
|
058c4d36
|
2021-09-10T20:55:49
|
|
Add envvar to disable touchpads independently
|
|
4435543d
|
2021-09-10T20:01:40
|
|
Add PVR On Screen Keyboard Support
|
|
10d3df44
|
2021-09-09T12:46:28
|
|
Vita: fix copyright dates
|
|
2a836860
|
2021-09-09T12:36:40
|
|
Fix default path
|
|
134dd468
|
2021-08-16T19:08:12
|
|
Add pvr gles/gles2 context support
|
|
6f972052
|
2021-08-30T12:21:05
|
|
Added: Support for showing the IME Candidate Window on Windows
|
|
515b7e93
|
2021-08-27T17:02:07
|
|
Fix horizontal wheel scroll direction of X11.
|
|
9fae8f70
|
2021-08-29T15:33:58
|
|
Treat empty SDL_VIDEODRIVER var to check all video drivers.
|
|
1fe9ad04
|
2021-08-27T14:09:47
|
|
SDL_ConvertSurface: add an intermediate variable to remove static analysis false positive (see bug #4600)
|
|
b1e492d1
|
2021-08-25T19:31:47
|
|
Search for an appropiate plane instead of simply using the first one.
|
|
23ffa3d9
|
2021-08-25T21:31:07
|
|
Update SDL's copy of the EGL headers from Khronos
|
|
524964f9
|
2021-08-14T12:09:13
|
|
Add SDL_HINT_VIDEO_EGL_ALLOW_TRANSPARENCY
|
|
5113fedf
|
2021-08-02T23:01:12
|
|
video/wayland: use EGL_EXT_present_opaque when available
|
|
d5fe9c30
|
2021-08-24T14:18:47
|
|
x11: Log a warning if we decide to use XVidMode.
Reference issue #1782.
|
|
ccb06296
|
2021-08-19T03:15:02
|
|
SDL_windowsevents.c: fix build against older SDKs.
|
|
402b86f2
|
2021-08-15T14:41:56
|
|
waylandevents: prevent segfault if xkb compose table is not found
this can happen e.g. on pure wayland system where there is no X11
locales for xkbcommon to find.
|
|
454943cf
|
2021-04-11T16:44:48
|
|
emscripten: Don't flag window fullscreen on external requests
Also, the condition was always true.
|
|
55af8dca
|
2019-02-27T14:16:37
|
|
emscripten: use emscripten_set_window_title api
|