Sam Lantinga
0e45b824e3
renderer: always update the output pixel size at startup
...
Fixes https://github.com/libsdl-org/SDL/issues/10990
2024-09-29 05:22:28 -07:00
Sam Lantinga
2825a682f0
Fixed build errors
2024-09-29 04:42:19 -07:00
Sam Lantinga
a923771978
Added SDL_murmur3_32()
2024-09-28 17:19:01 -07:00
Sam Lantinga
039148fb0e
Updated check for stdbool.h
...
If you're building in a C99 or newer environment, we'll automatically include stdbool.h.
If you're building in a C89 or C90 environment, we'll assume that stdbool.h isn't available and define bool as an unsigned char. If you have a working stdbool.h and want SDL to use it, you can either include stdbool.h before SDL headers, or define SDL_INCLUDE_STDBOOL_H in your project.
Closes https://github.com/libsdl-org/SDL/pull/10980
2024-09-28 16:55:09 -07:00
Sam Lantinga
3f446d8fb5
Minor cleanup
2024-09-27 14:10:46 -07:00
Sam Lantinga
d39acc6d1e
Fixed warning C4702: unreachable code
2024-09-27 11:19:54 -07:00
Sam Lantinga
04bb105d09
Added header for SDL_ThreadID type
2024-09-27 08:16:49 -07:00
Sam Lantinga
48e213b4cd
Fixed SDL_ShouldQuit() returning false during status transitions
...
We should wait for the state to stabilize before SDL_ShouldQuit() returns.
For example:
Thread A initializes and increments a use refcount
Thread B skips initializing and increments the use refcount
Thread B starts cleaning up and checks the use refcount
Thread A starts cleaning up, returns because SDL_ShouldQuit() returns false (not initialized), not touching the use refcount
Thread B returns because the use refcount isn't zero
Now we have the state where the refcount is greater than one and both thread A and B have attempted to cleanup.
With this change:
Thread A initializes and increments a use refcount
Thread B skips initializing and increments the use refcount
Thread B starts cleaning up and decrements and checks the use refcount
Thread A starts cleaning up, waits for thread B
Thread B returns because the use refcount isn't zero
Thread A continues and decrements and checks the use refcount, and finishes cleaning up because it has reached 0.
2024-09-26 18:08:58 -07:00
Sam Lantinga
125e592844
Added SDL_ShouldInit() and SDL_ShouldQuit()
...
These are handy functions to support thread-safe initialization and shutdown.
2024-09-26 16:26:12 -07:00
Sam Lantinga
345d9bfe19
A zero source rect is valid for blitting
...
A zero sized source rect draws pixels sourced from a 0x0 region on the source surface.
Fixes https://github.com/libsdl-org/SDL/issues/8580
2024-09-25 22:36:55 -07:00
Sam Lantinga
1aea43846e
Don't use BlitARGBto555PixelAlpha() for SDL_PIXELFORMAT_ARGB1555
...
This didn't properly take into account destination alpha.
Fixes https://github.com/libsdl-org/SDL/issues/8401
2024-09-25 21:54:05 -07:00
Sam Lantinga
d9a7da4fac
Optimized SDL_HasEvent() and SDL_HasEvents()
...
Also document the counting behavior of SDL_PEEKEVENT.
Fixes https://github.com/libsdl-org/SDL/issues/6209
2024-09-25 21:20:00 -07:00
Sam Lantinga
b0e528cc88
Switched ifdef from negative to positive
2024-09-21 20:12:54 -07:00
Sam Lantinga
6f80d47d64
Use hexidecimal code for ±
2024-09-21 10:43:34 -07:00
Sam Lantinga
ea2e2e451d
Better fix for initializing Android environment variables
2024-09-20 11:09:48 -07:00
Sam Lantinga
095fb5f522
Fixed infinite recursion at startup on Android
2024-09-20 10:56:02 -07:00
Sam Lantinga
6771a6020d
testcamera: don't enable verbose logging
...
Fixes https://github.com/libsdl-org/SDL/issues/10541
2024-09-18 22:26:38 -07:00
Sam Lantinga
34c6011360
Fixed Windows build
2024-09-18 14:55:51 -07:00
Sam Lantinga
d29a0e3f31
Fixed warning: no previous prototype for function
2024-09-18 14:34:14 -07:00
Sam Lantinga
7a924b36ae
compile_shaders.sh shouldn't be in the SDL framework
2024-09-18 14:31:00 -07:00
Sam Lantinga
398dff7c25
Added support for the HORI licensed Steam Controller
2024-09-18 14:08:32 -07:00
Sam Lantinga
481203c074
Fixed Xcode warnings
2024-09-18 13:20:53 -07:00
Sam Lantinga
95c3ee77c1
Removed testing code
2024-09-18 11:12:06 -07:00
Sam Lantinga
ea640894d3
Fixed SDL_DEFINE_STDBOOL logic if __bool_true_false_are_defined is defined
2024-09-18 10:50:52 -07:00
Sam Lantinga
46fb2c6f1b
Added a script to help with the bool rename
2024-09-18 10:48:11 -07:00
Sam Lantinga
d658ef6627
Don't guess about the size of an int, assert it!
2024-09-18 10:37:11 -07:00
Sam Lantinga
32fd1878a0
Provide a definition of bool if needed for your environment
2024-09-18 10:37:11 -07:00
Sam Lantinga
1834c83d5a
testplatform: make sure bool is 1 byte
2024-09-18 10:01:15 -07:00
Sam Lantinga
95f7e53233
Added the examples directory to the API renaming tool
2024-09-18 08:32:30 -07:00
Sam Lantinga
a90ad3b0e2
Removed SDL_bool in favor of plain bool
...
We require stdbool.h in the build environment, so we might as well use the plain bool type.
If your environment doesn't have stdbool.h, this simple replacement will suffice:
typedef signed char bool;
2024-09-18 08:32:30 -07:00
Sam Lantinga
32cf23d392
Added video/x11/edid.h to third party code list
2024-09-18 08:18:26 -07:00
Sam Lantinga
407ccadfd7
Added copyright header to edid.h
2024-09-18 08:18:26 -07:00
Sam Lantinga
bd04459cde
Fix typos (thanks @qndel!)
...
Fix typos in comments and in one case in a returned error ("insuffient -> insufficient" fb273eb )
codespell src/ *.cpp *.h *.hpp --ignore-words-list unknwn,thid,algebric,statics,pixelX,pEvents,caf,ptd,parms,pEvent,parm,TextureRS,TE,HDA,LOD,datas,UE,xwindows,IIF
cd src; git checkout \
events/imKStoUCS.* \
hidapi \
joystick/controller_type.c \
joystick/controller_type.h \
joystick/hidapi/steam/controller_constants.h \
joystick/hidapi/steam/controller_structs.h \
libm \
stdlib/SDL_malloc.c \
stdlib/SDL_qsort.c \
stdlib/SDL_strtokr.c \
video/khronos \
video/x11/edid.h \
video/x11/edid-parse.c \
video/x11/xsettings-client.* \
video/yuv2rgb
2024-09-18 08:18:26 -07:00
Sam Lantinga
03ae792df3
Fixed the recording field in audio device events
...
Fixes https://github.com/libsdl-org/SDL/issues/10885
2024-09-17 11:36:55 -07:00
Sam Lantinga
c68e9e157c
Fixed typo
2024-09-17 10:59:28 -07:00
Sam Lantinga
bc9780299c
Don't define backends if SDL_GPU_DISABLED is set
2024-09-17 09:40:29 -07:00
Sam Lantinga
807b8a9d4d
Allow initializing hints and properties from any thread
2024-09-17 08:53:27 -07:00
Sam Lantinga
d0edf68774
Added Uint32 versions of the atomic functions
2024-09-17 08:53:27 -07:00
Sam Lantinga
8d223b3037
Renamed atomic functions to match SDL 3.0 naming convention
...
This will also allow us to cleanly add atomic operations for other types in the future.
2024-09-17 08:53:27 -07:00
Sam Lantinga
f3e419596b
Removed SDL_INIT_TIMER
...
This is no longer necessary before calling SDL_AddTimer()
2024-09-17 08:53:27 -07:00
Sam Lantinga
9275c533ca
Added thread-safe initialization/cleanup support
...
Also went through and removed inappropriate uses of spinlocks.
Fixes https://github.com/libsdl-org/SDL/issues/10872
2024-09-17 08:53:27 -07:00
Sam Lantinga
7edd43c276
Don't define render_drivers if SDL_RENDER_DISABLED is set
...
Fixes https://github.com/libsdl-org/SDL/issues/10861
2024-09-17 08:46:05 -07:00
Sam Lantinga
98cd8b34a7
Close the other file descriptors after redirection has taken place
...
Fixes https://github.com/libsdl-org/SDL/issues/10868
2024-09-17 07:46:48 -07:00
Sam Lantinga
231ea07617
Added SDL_LogTrace()
2024-09-17 02:04:54 -07:00
Sam Lantinga
6180da00e1
Skip a lock/unlock when logging known categories
2024-09-17 02:04:54 -07:00
Sam Lantinga
1bbc897e48
Updated documentation for bool return type
...
Also updated the test CRC functions to return bool.
2024-09-16 13:12:15 -07:00
Sam Lantinga
dc639956ba
Improve logging performance and make log priorities thread-safe
...
Fixes https://github.com/libsdl-org/SDL/issues/9679
2024-09-16 13:09:17 -07:00
Sam Lantinga
0f85fdefc8
Fixed warning: "SDL_VIDEO_RENDER_D3D12" is not defined, evaluates to 0
2024-09-16 07:40:00 -07:00
Sam Lantinga
0548050fc5
Verify that the subsystems were successfully initialized
2024-09-15 12:04:10 -07:00
Sam Lantinga
5b5b1a8926
Fixed cleaning up dependent subsystems if initialization fails
2024-09-15 11:40:31 -07:00
Sam Lantinga
97d40b9218
Removed SDL_CleanupEnvironment()
2024-09-15 10:00:21 -07:00
Sam Lantinga
28b94c4758
Re-added SDL_getenv() as a thread-safe getenv() implementation
2024-09-15 09:37:04 -07:00
Sam Lantinga
718845a33d
Fixed warning C4701: potentially uninitialized local variable 'startup_info' used
2024-09-15 09:21:04 -07:00
Sam Lantinga
19243092c6
Renamed SDL_GpuGraphicsPipelineTargetInfo to SDL_GPUGraphicsPipelineTargetInfo
...
Fixes https://github.com/libsdl-org/SDL/issues/10855
2024-09-15 07:46:26 -07:00
Sam Lantinga
604d0c519e
If posix_spawn() is available, so is sigaction
2024-09-14 22:54:18 -07:00
Sam Lantinga
ec5d280c90
Make sure we ignore SIGPIPE so we don't crash if we write when the pipe is closed
2024-09-14 22:15:18 -07:00
Sam Lantinga
34b2f4ffca
Use non-blocking pipes for process I/O on Windows
...
Fixes https://github.com/libsdl-org/SDL/issues/10846
2024-09-14 21:16:35 -07:00
Sam Lantinga
8569bde053
Fixed typo
2024-09-14 14:35:57 -07:00
Sam Lantinga
dcb2a8c2fe
Use CreateProcessW() to handle non-ASCII file paths and arguments
2024-09-14 12:27:22 -07:00
Sam Lantinga
e97f636590
SDL_PROP_PROCESS_CREATE_ENVIRONMENT_POINTER is an SDL_Environment pointer
2024-09-14 12:27:22 -07:00
Sam Lantinga
56fc4b790c
Reduce strcmp() calls in hashtable lookup
2024-09-14 11:46:40 -07:00
Sam Lantinga
e673479449
Removed SDL_WriteProcess()
...
This had the unfortunate side-effect of blocking if you tried to write too much. Instead you can use SDL_GetProcessInput() and handle SDL_IO_STATUS_NOT_READY as needed.
Fixes https://github.com/libsdl-org/SDL/issues/10834
2024-09-14 11:15:50 -07:00
Sam Lantinga
7ff015ceae
Close file descriptors not used by the child process
2024-09-14 10:29:02 -07:00
Sam Lantinga
fed0149172
Switched wayland messageboxes to use the new process API
2024-09-14 10:29:02 -07:00
Sam Lantinga
aa7357a14d
SDL_CreateEnvironment() fills the environment with a non-zero parameter
2024-09-14 10:29:02 -07:00
Sam Lantinga
76c469910e
Added SDL_PROP_PROCESS_CREATE_BACKGROUND_BOOLEAN
2024-09-14 10:29:02 -07:00
Sam Lantinga
44c6cfda05
Switched zenity dialogs to use the new process API
2024-09-14 10:29:02 -07:00
Sam Lantinga
90e01040c5
Added thread-safe environment functions
...
Also marked the existing functions as unsafe, as they can cause crashes if used in multi-threaded applications.
As a bonus, since the new functions are hashtable based, hint environment lookups are much faster.
2024-09-13 22:14:54 -07:00
Sam Lantinga
6c83491116
Added SDL_FlushIO()
...
Also added SDL_PROP_IOSTREAM_FILE_DESCRIPTOR_NUMBER and refactored the internal API to be able to create SDL_IOStream objects from native file handles.
2024-09-13 15:19:32 -07:00
Sam Lantinga
93caf1cd21
Fixed typo
2024-09-13 14:59:52 -07:00
Sam Lantinga
f1d0a71629
Fixed the documentation for SDL_SetError()
2024-09-13 13:54:54 -07:00
Sam Lantinga
b15fab0207
Fixed typo in SDL_dialog.h
2024-09-11 17:35:23 -07:00
Sam Lantinga
4d135fb696
Fixed color scale when rendering to an sRGB render target
2024-09-11 14:23:58 -07:00
Sam Lantinga
3f7f6f624b
testcolorspace: don't tonemap from HDR to SDR when reading pixels
...
Our source content is in the SDR range, so we don't need to tonemap when reading it back.
2024-09-11 14:23:58 -07:00
Sam Lantinga
4e43da684c
Added texture colorspace testing
2024-09-11 14:23:58 -07:00
Sam Lantinga
86e393b523
Clarify that INPUTTYPE_UNSPECIFIED is correct for RGB textures
2024-09-11 14:23:58 -07:00
Sam Lantinga
92255d36d4
We already have functions for converting between sRGB and linear space
2024-09-11 14:23:58 -07:00
Sam Lantinga
667a3e40e9
Use the correct namespace for structures
...
Otherwise the debugger may use the wrong structure definition at runtime.
2024-09-11 14:23:58 -07:00
Sam Lantinga
77c569496d
SDL_GPUShaderFormat isn't an enum anymore
2024-09-11 09:32:17 -07:00
Sam Lantinga
37c9fb490e
Changed enums to use XXX_COUNT for the count or number of values
...
Fixes https://github.com/libsdl-org/SDL/issues/10763
2024-09-11 09:32:17 -07:00
Sam Lantinga
4123023d3e
Renamed sdlgpu to gpu
2024-09-11 08:34:51 -07:00
Sam Lantinga
c77e51c084
Use SDL_unsetenv()
2024-09-11 07:42:17 -07:00
Sam Lantinga
b8dbc7086d
Disable GameInput mouse and keyboard support
...
GameInput currently has a bug with keys stuck on focus change, and crashes on initialization on some systems, so we'll disable it until these issues are fixed.
2024-09-10 15:29:52 -07:00
Sam Lantinga
76ce83801a
Removed pipewire client version check
...
@smcv may have found the root cause of the pipewire thread crash, so removing the pipewire client version check to re-enable use of pipewire in older container runtimes.
2024-09-10 13:05:48 -07:00
Sam Lantinga
817f1b3da8
Revert "Changed SDL_GPU_TEXTUREFORMAT_INVALID to 0"
...
This reverts commit b51c6551d6 .
2024-09-10 09:22:49 -07:00
Sam Lantinga
b51c6551d6
Changed SDL_GPU_TEXTUREFORMAT_INVALID to 0
...
This is more in line with SDL's convention and makes it easier to do zero-based structure initialization.
2024-09-10 08:37:52 -07:00
Sam Lantinga
640559eba6
Added migration documentation for SDL_strtoll(), SDL_strtoull(), SDL_lltoa(), and SDL_ulltoa().
2024-09-09 15:56:42 -07:00
Sam Lantinga
4eb4370500
SDL_strtoll(), SDL_strtoull(), SDL_lltoa(), and SDL_ulltoa() use long long values
2024-09-09 15:46:26 -07:00
Sam Lantinga
6fc6e3dc7e
Use SDL_bool where appropriate in SDL events
...
This involved changing button state from Uint8 to SDL_bool, and made SDL_PRESSED and SDL_RELEASED unnecessary.
Fixes https://github.com/libsdl-org/SDL/issues/10069
2024-09-09 14:00:19 -07:00
Sam Lantinga
80e541d1fc
Fixed calling SDL_utf8strlcpy() with dst_bytes of 0
2024-09-09 10:42:25 -07:00
Sam Lantinga
7df1caba7c
Clarified that the contents of new textures aren't defined.
2024-09-08 07:23:17 -07:00
Sam Lantinga
cf9613fe63
The GPU log category ate one of the SDL reserved categories
2024-09-07 07:57:29 -07:00
Sam Lantinga
a01e8a5e10
The GPU log category ate one of the SDL reserved categories
...
Fixes https://github.com/libsdl-org/SDL/issues/10739
2024-09-07 07:54:13 -07:00
Sam Lantinga
1d59be67fc
Fixed crash if PIPEWIRE_PREFERRED_Init() fails and then pipewire is used anyway
...
The symbols were unloaded, but not reloaded because pipewire_initialized was still true.
2024-09-06 17:26:45 -07:00
Sam Lantinga
4c8357a37d
Clarified why the WINDOWS driver is lower than the RAWINPUT driver
2024-09-06 11:27:51 -07:00
Sam Lantinga
66b4c080c0
Clarified why the WGI driver is lower than the WINDOWS driver
2024-09-06 11:25:57 -07:00
Sam Lantinga
8f46cb771c
SDL_XINPUT_Enabled() returns false until XInput DLL is successfully loaded
...
We make sure we initialize XInput first, so that anything checking whether it's enabled gets a valid result based on whether we were able to load it or not.
2024-09-06 11:21:06 -07:00
Sam Lantinga
6d7c211faf
Fixed race condition at startup that could cause a crash in the XInput driver
2024-09-06 10:15:16 -07:00
Sam Lantinga
6e5bd58c4c
Include the Steam controller driver on Android
2024-09-06 09:14:42 -07:00
Sam Lantinga
1381cc8554
Add a step to fix generated shader code
2024-09-06 09:09:01 -07:00