Commit Graph

13967 Commits (63d4bd4e57ec06f6c6bf8314aa2eb4778a499856)

Author SHA1 Message Date
Ozkan Sezer 63d4bd4e57 SDL_SendKeyboardText: remove workaround from 1e12d7c, fix use of iscntrl 2023-11-29 00:39:24 +03:00
Anonymous Maarten fea6e7afb1 cmake: copy sources to binary directory in separate target
Don't do it in POST_BUILD to avoid multiple parallel builds
stepping on each others toes.
Also don't use copy_if_different, but unconditionally copy it.
The build system should take care of dependencies.
2023-11-28 22:16:54 +01:00
Dimitriy Ryazantcev 9faa7977bd UWP: Add support for supplementary Unicode characters input
Characters outside Basic Multilingual Plane (BMP) are coded as so called "surrogate pair" in two separate UTF-16 character events.
2023-11-28 12:33:21 -08:00
Dimitriy Ryazantcev 7b628ea4d5 Win32: Simplify Unicode text input code 2023-11-28 12:33:21 -08:00
Sam Lantinga 411c70abb1 Fix the target membership of SDL_pen.h (thanks kanjitalk755!)
Closes https://github.com/libsdl-org/SDL/pull/8599
2023-11-28 12:20:43 -08:00
shenleban tongying 3e6513c773 document the purpose of SDL_SetTextInputRect 2023-11-28 12:06:16 -08:00
Sam Lantinga 1e12d7cfb6 Make sure we don't pass UTF-8 to SDL_iscntrl()
This function is only valid for values <= 127.

Closes https://github.com/libsdl-org/SDL/pull/8637
2023-11-28 11:39:35 -08:00
Dimitriy Ryazantcev 9a206adbee UWP: Use Windows.UI.Core.CoreDispatcher.AcceleratorKeyActivated event for keyboard
Only in this case we can see Left Alt and Right Alt keys.

Stole the idea from DirectXTK12 repo:
https://github.com/microsoft/DirectXTK12/blob/main/Src/Keyboard.cpp
2023-11-28 11:31:19 -08:00
Dimitriy Ryazantcev 309ea2d5f9 UWP: Simplify Win32 scan code to SDL scan code mapping 2023-11-28 11:31:19 -08:00
Dimitriy Ryazantcev acc5bb89f8 [Win32] Better keyboard button mapping to SDL scan codes
Using official mappings from the Microsoft docs:
https://learn.microsoft.com/windows/win32/inputdev/about-keyboard-input#scan-codes
2023-11-28 11:31:19 -08:00
Dimitriy Ryazantcev 6b28065e9e Reformat Win32 scan code table 2023-11-28 11:31:19 -08:00
Dimitriy Ryazantcev 7e86b6aef2 Win32: Fix keymap for keyboard layouts that can print UTF-16 surrogates and ligatures
Old implementation with `MapVirtualKey(..., MAPVK_VK_TO_CHAR) & 0x7FFFF` simply returned `A`..`Z` for VK_A..VK_Z and
completely useless <U+0002 START OF TEXT> (`WCH_LGTR 0xF002` without high-order bit) in case of ligature.

See https://kbdlayout.info/features/ligatures for a list of affected keyboard layouts.
More info on `MAPVK_VK_TO_CHAR`: https://stackoverflow.com/a/72464584/1795050
2023-11-28 11:11:33 -08:00
Ryan C. Gordon 08c6ac1b16 test: SDLTest_PrintEvent now reports key event mod state.
(cherry picked from commit d42fa25a9e850ca9a9c9c0879ca7fdee00c136d1)
2023-11-28 13:11:57 -05:00
Sam Lantinga 571e9796b9 Fixed the GameCube HIDAPI controller mapping
Fixes https://github.com/libsdl-org/SDL/issues/8617
Closes https://github.com/libsdl-org/SDL/pull/8623
Closes https://github.com/libsdl-org/SDL/pull/7930
2023-11-28 10:07:06 -08:00
Sam Lantinga dd984dcd9f Removed HIDAPI controller mappings
These are already provided internally by SDL
2023-11-28 09:54:35 -08:00
Ryan C. Gordon 3817f5126e cocoa: Use `-[NSApplicationDelegate applicationSupportsSecureRestorableState]`.
This prevents warnings at startup on macOS Sonoma (14.0).

(cherry picked from commit 7d25a443c45450287e0a3ec5c1eb0e417647070e)
2023-11-28 12:41:35 -05:00
Ryan C. Gordon c5b0ff77d7 test: testwm2 now displays keyboard mod state.
(cherry picked from commit 258849c9bc2f28b2b6dcacbab4d415054539598c)
2023-11-28 12:10:57 -05:00
Anonymous Maarten 5772e00c3f cmake: disable oss by default on OpenBSD, not FreeBSD
This fixes ed3fad1880
2023-11-28 16:45:33 +01:00
Jake S. Del Mastro ceac93ade2 Set framebuffer_srgb_capable to the actual value obtained (#8634)
(cherry picked from commit 594a79c2f9db21a11a76c012b2b1655a21fc8982)
2023-11-28 05:49:40 -08:00
Anonymous Maarten ed3fad1880 cmake: disable oss by default on Linux, NetBSD and FreeBSD 2023-11-27 22:04:04 +01:00
Sylvain 6bb40f1d8d SDL_VideoCapture: allow add/remove device at runtime on linux 2023-11-27 16:01:10 -05:00
Sam Lantinga f0e47f8ee0 Added support for the NACON Revolution 5 Pro controller 2023-11-27 12:10:00 -08:00
Ozkan Sezer 2f806c89b5 initial import of hidapi netbsd uhid native backend from mainstream
c19ae126d8
https://github.com/libusb/hidapi/pull/612
2023-11-26 20:20:28 +03:00
Christoph Reichenbach 1b284cd415 X11 pen detection: fix misclassification due to improper init
xinput2_device_is_pen() was testing against default-zero values
in the X11 Atom cache on at least the first round of
detections, leading to imprecise detection.

The patch fixes two aspects of initialisation:

1. Ensure that the selector cache is always initialised in
xinput2_device_is_pen().

2. Ensure that all X11 Atoms used in SDL_x11pen.c are instantiated if
missing. This ensures that they are never None and avoids potential
failures to detect hot-plugged tablet devices.

Acknowledgements: @tilman3 for narrowing down the issue and an
initial fix
2023-11-26 14:10:04 +03:00
Anonymous Maarten c4ca64deaf ci: do 'brew update' & don't run dependent checks on installed things 2023-11-26 06:01:26 +01:00
Ozkan Sezer d486de6349 cmake: fixed iconv detection test program
Fixes https://github.com/libsdl-org/SDL/issues/8614
2023-11-26 01:55:28 +03:00
Ryan C. Gordon 42a8139fd6
render: Clip bresenham lines against a real viewport thing.
You can't just use renderer->view->viewport, because it might be (0,0), -1x-1.

I _think_ this is more right?

Fixes #8609.
2023-11-25 01:51:35 -05:00
Ryan C. Gordon 4a40a272bd
render: Patched to compile.
Bad cherry-pick on my part, sorry!

Fixes #8609.
2023-11-24 22:47:44 -05:00
Ryan C. Gordon 983f178b7d
render: Clip lines before Bresenham algorithm generates points.
Otherwise, a massive line might generate gigabytes worth of points to render,
which the backend would simply throw away anyhow.

Fixes #8113.

(cherry picked from commit 4339647d900bb8559ac3f6258166d21fe6d72a9a)
2023-11-24 19:34:47 -05:00
Ryan C. Gordon db7f6425d0
rect: Avoid numeric overflow on massive lines in SDL_IntersectRectAndLine.
Reference Issue #8301.
Reference Issue #8113.

(cherry picked from commit a391dd5fef70e0da4702d355b6331da5bf1f84a2)
2023-11-24 19:34:20 -05:00
Anonymous Maarten e548044a82 ci: add NetBSD to test matrix
Co-authored-by: Ozkan Sezer <sezeroz@gmail.com>
2023-11-24 21:34:56 +01:00
Anonymous Maarten dd5b8db3a6 SDL_hidapi requires libusb >= 1.0.16
Co-authored-by: Ozkan Sezer <sezeroz@gmail.com>
2023-11-24 21:31:59 +01:00
Ryan C. Gordon 6ba90f7775 render: Batching is always enabled now!
Make sure your app uses SDL_RenderFlush() before it talks to D3D/OpenGL/etc!

Fixes #8584.
2023-11-23 20:37:52 -05:00
Ryan C. Gordon b24d6bd59a
opengl: Creating a texture trashes the cached `texturing` state, fix it.
Reference Issue #7194.

(cherry picked from commit e9b486937238680053bdf76b27693e120f00a70f)
2023-11-23 20:01:02 -05:00
Ryan C. Gordon dcf04559db
render: GL-based renderers should treat adaptive vsync as vsync being enabled.
Fixes #8004.
2023-11-23 18:28:43 -05:00
Ryan C. Gordon 74a2542564
x11: Deal with difference in GLX_EXT_swap_control_tear behavior.
Mesa and Nvidia handle it differently, and one or the other may fix their
implementation in the future, so test which way it works at runtime.

Reference Issue #8004.
2023-11-23 13:56:51 -05:00
Ozkan Sezer 08fac5b1b2 SDL_PenModifyForWacomID: return zero as axis_flags upon failure.
Fixes uninitialized warning in testautomation_pen.c:
testautomation_pen.c:1512: warning: 'mask' may be used uninitialized in this function
2023-11-23 11:56:50 +03:00
Ozkan Sezer aaba01aee4 hidapi: syncing with mainstream:
- macos, pthread_barrier_wait: properly check the wait condition
- windows: Assert that struct has the correct size
- windows: Fix printf/string-related issues
- other miscellaneous stuff irrelevant in SDL. (for symmetry...)
2023-11-23 11:35:02 +03:00
Ozkan Sezer 5730eb67f0 add HAVE_GCC_DIAGNOSTIC_PRAGMA to SDL_internal.h, use it 2023-11-23 11:33:20 +03:00
Ozkan Sezer 42c8366fdc revise iconv detection:
- check libiconv with a linkage test with iconv.h included
- check libc iconv with a linkage test with iconv.h included
  and LIBICONV_PLUG defined (in case libiconv header is in
  include path)
- add new configuration option to prefer iconv from libiconv,
  if available, over the libc version: SDL_LIBICONV, defaults
  to disabled.
- remove FindIconv + pkg_check_modules for iconv, and use our
  manual iconv finding only
- change FreeBSD specific LIBICONV_PLUG define in SDL_iconv.c
  to configuration result.
2023-11-23 04:30:56 +03:00
Anonymous Maarten a45b371de0 cmake: create and install SDL3::Jar target for Android 2023-11-23 02:13:08 +01:00
Ozkan Sezer 53544cabaa psp: fix copy/paste error from SDL2 in PSP_VideoQuit(). 2023-11-23 04:11:24 +03:00
Ryan C. Gordon 6cde96f9a0
psp: Hook up event subsystem init/quit.
Fixes #8554.

(cherry picked from commit 0e9d050296ba754d23e82752eb1bd61221768586)
2023-11-22 18:03:29 -05:00
Ryan C. Gordon e9659f5738
Removed some function declarations that don't actually exist.
Reference Issue #8554.

(cherry picked from commit 87875a49b4cfc277aba6d2c4c32769a29767e561)
2023-11-22 17:58:54 -05:00
Ryan C. Gordon 3264e64738
SDL_RunApp: Make sure argc/argv are stable if the caller didn't define them.
Fixes #8246.
2023-11-22 17:34:39 -05:00
Sam Lantinga eca79e38db Removed test shape images 2023-11-22 14:11:10 -08:00
Sam Lantinga 81fc7ded78 Removed the window shape API for SDL 3.0
Fixes https://github.com/libsdl-org/SDL/issues/6654
Fixes https://github.com/libsdl-org/SDL/issues/6897
2023-11-22 14:11:10 -08:00
Sam Lantinga 45938bbfa5 Corrected comment 2023-11-22 10:35:15 -08:00
zoeyjodon 059e550e98
Fix 3DS Analog Values (#8581) 2023-11-22 10:34:01 -08:00
zoey jodon dbf14df80f Fix joysticks returning invalid device IDs 2023-11-22 10:33:11 -08:00