Ryan C. Gordon
5edd6846db
cocoa: Patched to compile on macOS SDK < 10.10.
...
Fixes #6586 .
(cherry picked from commit fa5adcafd5 )
2022-11-26 14:00:59 -05:00
Ryan C. Gordon
a1702d463c
ibus: Try to use org.freedesktop.portal.IBus first if available.
...
This should fix apps that want ibus support inside sandboxed environments
like FlatPak or Snaps.
Fixes #4706 .
2022-11-16 23:39:41 -05:00
Ryan C. Gordon
bb0b8adacc
mac: Fix handling of deprecated symbol.
...
This needs to check what our deployment target is, not what SDK
is available, since this is a linker symbol and not an enum
value or whatever.
Also removed a copy/paste error that mentioned CoreAudio in
the haptic subsystem.
Fixes #6534 .
2022-11-16 22:04:04 -05:00
Ryan C. Gordon
389ffab733
Code style fixes, etc.
...
Reference PR #6345 .
2022-11-16 12:53:48 -05:00
Ryan C. Gordon
7ebdae5dc9
cocoa: Fix OpenGL deprecation warning.
2022-11-16 11:45:41 -05:00
Ryan C. Gordon
7c760f7f79
cocoa: Update CVDisplayLink timing when screen changes.
...
This handles both the window moving to a new display and
changing the current display's refresh rate in System
Preferences
Reference Issue #4918 .
2022-11-16 11:35:27 -05:00
Ryan C. Gordon
1fd66cc890
Revert "cocoa: Backed out CVDisplayLink code for macOS vsync."
...
This reverts commit 04b50f6c6b .
It turns out OpenGL vsync has broken again in macOS 12, so
we're reintroducing our CVDisplayLink code to deal with it,
again.
Reference Issue #4918 .
2022-11-16 11:34:25 -05:00
Ryan C. Gordon
9d67686a5b
haptic: Deal with deprecated macOS symbol.
2022-11-16 10:08:40 -05:00
Ryan C. Gordon
6801d676c0
Revert "pulseaudio: Only use PA_STREAM_ADJUST_LATENCY if buffer isn't super small."
...
This reverts commit d8b1ef42ae .
This turned out to be unnecessary (it was a problem on the user's system,
not an SDL bug).
Reference Issue #6121 .
2022-11-16 09:53:37 -05:00
Ryan C. Gordon
d8b1ef42ae
pulseaudio: Only use PA_STREAM_ADJUST_LATENCY if buffer isn't super small.
...
Fixes #6121 .
2022-11-15 22:44:31 -05:00
Ryan C. Gordon
44d7b8b91d
egl: Check for a NULL pointer in SDL_EGL_GetProcAddress.
...
This happens on kmsdrm if you try to GetProcAddress before creating
a window.
Fixes #5399 .
2022-11-15 13:59:24 -05:00
Ryan C. Gordon
85aa9b8b6f
wasapi: Favor the system resampler again, for now.
...
Reference Issue #5538 .
2022-11-11 13:48:11 -05:00
Ryan C. Gordon
1008cc8e5f
video: Add some braces to match SDL coding style.
2022-11-09 12:55:27 -05:00
Ryan C. Gordon
b0dc6709b9
coreaudio: Don't use deprecated kAudioObjectPropertyElementMaster symbol.
...
Fixes #6449 .
2022-11-07 14:26:48 -05:00
Ryan C. Gordon
78f97108f9
audio: Avoid accumulation errors in resampler.
...
Fixes #6391 .
2022-11-05 10:39:35 -04:00
Ryan C. Gordon
b9e1d1b4de
events: Rename SDL_SendKeyboardKeyComplete to SDL_SendKeyboardKeyAndKeycode.+
2022-10-28 16:19:00 -04:00
Ryan C. Gordon
9221548114
emscripten: Make an attempt at correct keyboard scancode/keycodes.
...
This uses a newer browser API to get physical scancodes, but still
uses the (deprecated) event field that we were already using for
scancodes, but for keycodes instead now, which appears to be more
accurate.
Since keyboard layout isn't (generally) available to web apps, this
adds an internal interface to send key events with both scancode
and keycode to SDL's internals, instead of sending just scancodes and
expecting SDL to use its own keymap to generate keycodes.
Future work in this area would be to use the keyboard layout APIs
on browsers that support them, which would allow us to use SDL's
usual keymap code and not rely on a deprecated browser API, but
until we get there, this patch gives significantly more correct
results than we would have before.
Fixes #2098 .
2022-10-28 16:19:00 -04:00
Ryan C. Gordon
0ddec7e421
docs: Add notes about Emscripten audio quirks.
...
Fixes #6385 .
2022-10-28 16:08:23 -04:00
Ryan C. Gordon
9e8d2f3948
video: Don't use texture framebuffer on Windows Subsystem for Linux.
...
Reference Issue #6333 .
2022-10-27 13:54:53 -04:00
Ryan C. Gordon
41d38c0f64
shape: More robust handling of failure cases in CreateShaper.
2022-10-26 13:57:49 -04:00
Ryan C. Gordon
c8d20f96ba
shape: Free platform-specific shaped window data.
...
Fixes #2128 .
2022-10-26 13:57:49 -04:00
Ryan C. Gordon
98dfc9296a
build-scripts/fnsince.pl: Deal with new point-release system.
...
This ignores 2.x.1 (etc) releases, which prevents it from thinking
the next official non-point-release version is 2.26.1, when it
should be 2.26.0, because it saw the "latest" release is 2.24.1.
This fixes the wiki ending up with imaginary version numbers for
the "this function is available since SDL 2.x.y" sections.
Fixes #6343 .
2022-10-25 14:03:32 -04:00
Ryan C. Gordon
e7ab581d79
coreaudio: Dispose of AudioQueue before waiting on the thread.
...
Otherwise the thread might block for a long time (more than 10 seconds!).
It's not clear to me why this happens, or why its safe to do this with a
resource that's still in use, but we have, until recently, always
disposed of the AudioQueue first, so changing back is probably okay.
Also changed the disposal to allow in-flight buffers to reach hardware;
otherwise you lose the last little bit of audio that's already been queued
but not played, which you can hear clearly in the loopwave test program.
Fixes #6377 .
2022-10-19 09:14:16 -04:00
Ryan C. Gordon
2d7816e358
dynapi: Disable support for API call logging by default.
...
We can manually enable it if necessary, but it bloats the library to
leave it on just in case.
Fixes #6381 .
2022-10-12 09:59:31 -04:00
Ryan C. Gordon
17322e2be6
dynapi: Optionally log every call into the SDL API.
...
This will only log things going through dynapi, which means it won't
do anything if dynapi is disabled for a given build, but also things
that call the `*_REAL` version of an API won't log either (which is
to say, if an internal piece of SDL calls a public API, it won't log
it, but if an application calls that same entry point, it will).
Since this just inserts a different function pointer, unless you
explicitly request this at runtime, it won't add any overhead, and,
of course, the entire thing can be turned off with a single #define
so it doesn't even add extra unused code to the shared library if
the kill switch is flipped.
2022-10-10 13:17:07 -04:00
Ryan C. Gordon
321ca1091d
opengles2: Texture names are GLuint, not GLenum.
2022-10-03 12:00:38 -04:00
Ryan C. Gordon
01c5554f0e
opengles2: SDL_GL_BindTexture() should bind all YUV textures.
...
This matches what the non-GLES OpenGL renderer does.
Fixes #6070 .
2022-10-03 11:57:10 -04:00
Ryan C. Gordon
e6640ef2d4
coreaudio: Possibly fixed another shutdown race condition.
...
Reference Issue #6159 .
2022-09-30 14:53:49 -04:00
Ryan C. Gordon
1b895912a2
docs: Note the lowest supported Emscripten version.
...
Reference Issue #6304 .
2022-09-30 14:23:54 -04:00
Ryan C. Gordon
a97d2e6958
GitHub Actions: bump Emscripten version used to build to 2.0.31.
...
Reference PR #6304 .
2022-09-30 10:47:13 -04:00
Ryan C. Gordon
508cc225a7
Update README.md
2022-09-28 10:17:39 -04:00
Ryan C. Gordon
f648c000bd
build: Fixed some references to renamed test-versioning.sh
2022-09-28 09:37:21 -04:00
Ryan C. Gordon
f6565c329b
coreaudio: Remove redundant variable.
2022-09-28 09:27:45 -04:00
Ryan C. Gordon
411582c710
coreaudio: Don't crash on shutdown in a race condition.
...
Fixed #6159 .
2022-09-28 09:22:17 -04:00
Ryan C. Gordon
d843d61cc1
Moved test/versioning.sh to build-scripts/test-versioning.sh
...
Reference Issue #6171 .
2022-09-28 09:09:43 -04:00
Ryan C. Gordon
8e14647759
build-scripts: Added update-version.sh
...
Fixes #6171 .
2022-09-27 22:04:07 -04:00
Ryan C. Gordon
a2c5757356
video: check for "software" with SDL_HINT_FRAMEBUFFER_ACCELERATION.
...
We check for this value elsewhere but not in SDL_CreateWindowFramebuffer.
2022-09-27 22:04:06 -04:00
Ryan C. Gordon
57b20e7b9e
cocoa: Fix new windows setting SDL_WINDOW_BORDERLESS flag incorrectly.
...
Fixes #6172 .
2022-09-27 14:23:42 -04:00
Ryan C. Gordon
4ca7b378c5
x11: Specify windowed dimensions when creating fullscreen windows.
...
This lets the window manager adjust the window correctly if it ever
leaves fullscreen mode.
Fixes #5725 .
2022-08-21 11:35:14 -04:00
Ryan C. Gordon
51be30f3cd
emscripten-buildbot.sh: force -s USE_SDL=0
...
This avoids using Emscripten-provided SDL headers from its own
sysroot instead of the headers in our own include directory!
Reference https://github.com/emscripten-core/emscripten/discussions/17647
2022-08-17 21:39:59 -04:00
Ryan C. Gordon
26948f01a3
cocoa: Make SDL_MinimizeWindow() work with borderless windows.
...
Fixes #6046 .
2022-08-15 20:09:09 -04:00
Ryan C. Gordon
3119d58ff5
cocoa: Change the new sync_dispatch hint to async_dispatch.
...
This is so the default is safer.
2022-08-10 10:48:23 -04:00
Ryan C. Gordon
c6c0a8394e
windows: If a display's friendly name is blank, try the generic name.
...
Fixes #6031 .
2022-08-10 09:54:49 -04:00
Ryan C. Gordon
bdc7f958fd
cocoa: Added hint to treat MacBook trackpads as touch devices, not mice.
...
Fixes #5511 .
2022-08-10 00:42:31 -04:00
Ryan C. Gordon
3a9295e14f
build-scripts: Removed winrtbuild.*, no longer used.
...
WinRT/UWP is still supported, but you have to use the VS2019
project files, now.
Fixes #5639 .
2022-08-09 16:17:28 -04:00
Ryan C. Gordon
a346c4bbef
egl: Add support for SDL_GL_FLOATBUFFERS.
...
Fixes #6001 .
2022-08-09 15:41:02 -04:00
Ryan C. Gordon
8695d982d2
README-winrt.md: Updates for newer build details.
2022-08-09 10:09:54 -04:00
Ryan C. Gordon
b599205d0c
x11: Don't look up xinput2 devices unless we're in relative mode.
2022-08-09 09:50:55 -04:00
Ryan C. Gordon
2dd7659884
test: Fixed wrong arguments to SDL_SetWindowFullscreen.
2022-08-09 09:29:30 -04:00
Ryan C. Gordon
07b0ec539f
SDL_video.h: Added \since info to new APIs.
2022-08-09 09:05:08 -04:00
Ryan C. Gordon
56c1481cab
cocoa: Don't mark fullscreen-desktop windows as non-resizable.
...
Otherwise, we can't tile SDL apps in Spaces.
Fixes #4883 .
2022-08-08 20:35:11 -04:00
Ryan C. Gordon
a35cff634b
Sync wiki -> headers.
...
(bridge got stuck, I'm just kicking it to get it working again, idk.)
2022-08-08 16:07:31 -04:00
Ryan C. Gordon
f600364b8a
wayland: Mark window as MOUSE_CAPTURE while a mouse button is down.
...
Wayland works like SDL's "auto capture" feature already, tracking the mouse
globally only while a drag is occuring, and this is the only way to get mouse
input outside the window.
Setting this flag ourselves lets SDL_CaptureMouse() work in the most common
use case without actually implementing CaptureMouse for the backend, including
SDL's auto capture feature.
Fixes #6010 .
2022-08-06 09:19:52 -04:00
Ryan C. Gordon
e2452ede66
include: Added documentation to SDL_CaptureMouse about auto-capture.
2022-08-06 09:19:10 -04:00
Ryan C. Gordon
a6179e85c0
wayland: Don't double-free clipboard sources if ours gets cancelled.
...
Fixes #6007 .
2022-08-05 21:25:00 -04:00
Ryan C. Gordon
5907db56f1
x11: Attempt to deal with XInput2 devices with absolute coordinates.
...
This is untested!
Reference Issue #1836 .
2022-08-04 02:12:46 -04:00
Ryan C. Gordon
307b0b7813
video: Add a warning to the docs about using SDL_GetDisplayDPI.
...
Fixes #5647 .
2022-08-02 10:51:31 -04:00
Ryan C. Gordon
cf63af8ae2
events: Don't lose window RESIZED events during SIZED_CHANGED processing.
...
Previously, calling SDL_SendWindowEvent for a SIZED_CHANGED event would
filter the queue to remove RESIZED and SIZED_CHANGED events, so you don't
overflow the queue with obsolete data, but any RESIZED events would be
lost in this process.
Now we note if there was a RESIZED pending and replace it with a new
event using the same dimensions as the new SIZED_CHANGED event. This fixes
cases where an app is only listening for RESIZED events and thus might
lose important information in some cases.
Fixes #5925 .
2022-07-31 22:10:45 -04:00
Ryan C. Gordon
42165fe8d1
kmsdrm: slightly better device index hint parsing.
2022-07-27 12:12:36 -04:00
Ryan C. Gordon
cc982ea7a7
kmsdrm: let device indexes be > 2 digits.
2022-07-26 15:43:34 -04:00
Ryan C. Gordon
31d38f2f30
WhatsNew.txt: Note that minimum macOS version is now 10.9.
2022-07-26 15:14:37 -04:00
Ryan C. Gordon
542a4da3d6
kmsdrm: check SDL_HINT_KMSDRM_DEVICE_INDEX hint in dri_getindex().
...
Otherwise, it would work for Init but not Available.
2022-07-26 15:11:19 -04:00
Ryan C. Gordon
218c3dbb34
cocoa: Don't crash if moving a message box created before SDL_Init.
...
Fixes #5928 .
2022-07-26 14:45:26 -04:00
Ryan C. Gordon
8ff738f234
audio: Report SDL_AUDIODEVICEREMOVED for unopened devices.
...
Unopened devices, if removed, now send SDL_AUDIODEVICEREMOVED events with
a `which` field set to zero. Apps can use this to decide if they need to
refresh a list of devices being shown in an options menu, etc.
It's safe to call SDL_CloseAudioDevice(0), so even if they try to clean
up this bogus id, it should be safe.
Fixes #5199 .
2022-07-26 12:40:47 -04:00
Ryan C. Gordon
5d85c7d300
kmsdrm: Added a hint to specify device index.
...
Fixes #2811 .
2022-07-26 00:19:54 -04:00
Ryan C. Gordon
20a76b0e3e
video: removed unused devindex argument from bootstrap's create method.
2022-07-26 00:19:52 -04:00
Ryan C. Gordon
45c3b59d4b
audio: Turn off DEBUG_CONFIG logging again.
2022-07-20 18:41:53 -04:00
Ryan C. Gordon
bec721f08a
audio: Fixed dst pointer on channel conversions that grow in-place.
2022-07-20 18:41:53 -04:00
Ryan C. Gordon
9f56c7cf02
audio: Remove 5.1->X SIMD converters, add SSE mono->stereo.
...
The 5.1 versions didn't use the new algorithm, and making that new
algorithm work took so many permutes that it was significantly slower
than just using the scalar versions.
However, mono-to-stereo is an extremely common conversion, and it's
trivial to accelerate it with plain SSE, so that was added!
2022-07-20 18:41:53 -04:00
Ryan C. Gordon
b83ae9f24c
audio: Replaced some debug-printfs with debug-SDL_Logs. :)
2022-07-20 18:41:53 -04:00
Ryan C. Gordon
f73d07da5f
audio: Headers said 5 channel is quad+center, but it's 4.1.
2022-07-20 18:41:53 -04:00
Ryan C. Gordon
49ec8db5f8
audio: Generate the channel converter code from a program.
2022-07-20 18:41:53 -04:00
Ryan C. Gordon
f06cc3e945
audio: "SL" means "surround left" not "side left", etc.
2022-07-20 18:41:53 -04:00
Ryan C. Gordon
5a0c819863
audio: Add channel convert filter _after_ choosing an SIMD version.
2022-07-20 18:41:53 -04:00
Ryan C. Gordon
fe16084075
audio: LOG_DEBUG_CONVERT should use SDL_Log, not fprintf(stderr).
2022-07-20 18:41:53 -04:00
Ryan C. Gordon
257277903e
audio: first attempt at rewriting the channel converters.
...
This is not ready for production use!
2022-07-20 18:41:53 -04:00
Ryan C. Gordon
fdb86b8266
x11: Don't try to use XInput2 multitouch if not supported.
...
Fixes #5889 .
2022-07-04 12:48:32 -04:00
Ryan C. Gordon
118a2189fb
build-scripts/wikiheaders.pl: ignore the 'FrontPage' wiki pages.
2022-06-23 16:07:35 -04:00
Ryan C. Gordon
12b371ee0f
x11: Don't send diplay-add events for displays connected at init time.
...
Reference Issue #4977 .
2022-06-21 14:49:21 -04:00
Ryan C. Gordon
ff735b3c0f
SDL_Surface: don't implicitly declare struct SDL_BlitMap.
...
It's just an opaque type, but it's more clear to have it typedef'd outside
the containing struct.
Fixes #5828 .
2022-06-20 18:31:39 -04:00
Ryan C. Gordon
48a232969d
wikiheaders: Strip [[wiki hyperlink]] from See Also fields.
2022-06-19 00:15:41 -04:00
Ryan C. Gordon
83b766174c
build-scripts/wikiheaders.pl: ignore "Category" wiki pages.
2022-06-17 17:35:52 -04:00
Ryan C. Gordon
20c622f090
build-scripts/wikiheaders.pl: Allow a wiki preamble.
...
This is so we can have everything in SDL_net (etc) start with a
"This is not part of the core SDL API" message.
2022-06-17 14:40:35 -04:00
Ryan C. Gordon
94f6080895
wikiheaders.pl: changes to make this usable with external projects.
2022-06-15 23:26:24 -04:00
Ryan C. Gordon
ded6c22efb
render: Corrected wrong SDL_memcpy() sizes for viewport, cliprect.
...
Fixes #5786 .
2022-06-14 14:10:14 -04:00
Ryan C. Gordon
9a0367675f
windows: Get better name for the physical display, for Vista and later.
...
Fixes #5321 .
2022-06-12 15:28:49 -04:00
Ryan C. Gordon
b75cd2b36d
x11: Force window back to expected size after SDL_SetWindowBordered.
...
This helps if the window manager decided to let it fill the space that
an existing border was using before its removal.
Fixes #5718 .
2022-06-10 14:13:07 -04:00
Ryan C. Gordon
ec0204d243
x11: Don't use GetXftDPI() when XRandR can tell us the DPI per-output.
...
Fixes #5764 .
2022-06-06 14:39:58 -04:00
Ryan C. Gordon
9703f23663
SDL_SetHintWithPriority: actually, this test is good.
...
Otherwise, we end up calling the callback if both the old and new value
are NULL.
This reverts commit 5f25a6ea78 (and also
trims some whitespace).
2022-06-06 10:55:29 -04:00
Ryan C. Gordon
5f25a6ea78
Revert "SDL_SetHintWithPriority: better test if hint value has changed."
...
Actually, the original test was fine, disregard.
This reverts commit c391bdc160 .
2022-06-06 09:36:20 -04:00
Ryan C. Gordon
c391bdc160
SDL_SetHintWithPriority: better test if hint value has changed.
2022-06-06 09:31:35 -04:00
Ryan C. Gordon
55a07d91fa
SDL_SetHintWithPriority: Allow setting NULL hints.
...
Fixes #5120 .
2022-06-06 09:30:43 -04:00
Ryan C. Gordon
a236bf4f25
x11: Hook up display hotplug notifications.
...
Obviously this needs XRandR support.
Fixes #4977 .
2022-06-06 02:13:37 -04:00
Ryan C. Gordon
6b4bd5a759
test_harness: Report if zero tests to run.
...
Fixes static analysis complain about a potential malloc(0) call.
2022-06-05 09:34:54 -04:00
Ryan C. Gordon
5968f3d828
gen_audio_resampler_filter.c: Precalculate loop-invariant bessel(beta).
...
Minor optimization in offline code.
2022-05-26 10:44:01 -04:00
Ryan C. Gordon
195ca499ca
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.
2022-05-25 10:46:06 -04:00
Ryan C. Gordon
7ce311bead
include/SDL_system.h: Fixed a link that was still hg.libsdl.org
2022-05-25 10:43:14 -04:00
Ryan C. Gordon
bed96482fa
wikiheaders.pl: Deal with links better.
2022-05-25 10:42:11 -04:00
Ryan C. Gordon
96a04cb910
wikiheaders.pl: Don't wordwrap truly massive words.
...
Usually, these are going to be URLs that you don't want to split
across lines.
2022-05-25 09:30:29 -04:00
Ryan C. Gordon
dc62fec5e9
audio: Fix locking in backends that manage their own callback threads.
...
Otherwise you might get a race where an app pauses the device, but
the audio callback still manages to run after the pause is in place.
2022-05-20 21:08:29 -04:00