Commit Graph

3799 Commits

Author SHA1 Message Date
Frank Praznik
6a74ade73d Make SDL_URIToLocal available to multiple platforms
Moves the functions out of core/unix into SDL_utils.c
2024-07-20 12:39:18 -04:00
Sam Lantinga
aafbbe4ebc Fixed warning C4090: 'function': different 'const' qualifiers 2024-07-19 15:38:41 -07:00
Sam Lantinga
0079b6d45f SDL_GetTouchFingers() follows the SDL_GetStringRule 2024-07-19 13:06:54 -07:00
Sam Lantinga
68322ac851 Ensure that all functions that follow the SDL_GetStringRule return temporary memory 2024-07-19 12:22:03 -07:00
Sam Lantinga
c4eac60000 SDL_GetClipboardData() follows the SDL_GetStringRule 2024-07-19 12:22:03 -07:00
Sam Lantinga
892df4bf4b SDL_GetWindowICCProfile() follows the SDL_GetStringRule 2024-07-19 12:22:03 -07:00
Sam Lantinga
eb22fcce35 SDL_GetTouchDevices() follows the SDL_GetStringRule 2024-07-19 12:22:03 -07:00
Sam Lantinga
9be73ed7c5 SDL_GetMice() follows the SDL_GetStringRule 2024-07-19 12:22:03 -07:00
Sam Lantinga
6ca18ed0e5 SDL_GetKeyboards() follows the SDL_GetStringRule 2024-07-19 12:22:03 -07:00
Sam Lantinga
9de8cb888a SDL_GetFullscreenDisplayModes() follows the SDL_GetStringRule 2024-07-19 12:22:03 -07:00
Sam Lantinga
9758e102bc SDL_GetDisplays() follows the SDL_GetStringRule 2024-07-19 12:22:03 -07:00
Sam Lantinga
bdafc8e212 SDL_GetWindows() follows the SDL_GetStringRule 2024-07-19 12:22:03 -07:00
Sam Lantinga
bb96320cc4 Make sure we always copy the data returned using SDL_GetStringRule
This prevents race conditions where calling an API from one thread returns the data and it's freed by updates on another thread
2024-07-19 12:22:03 -07:00
Frank Praznik
0d24b6e9f3 wayland: Use the compositor provided size during state transitions
Always use the size sent by the compositor when transitioning back to the floating state on the xdg-toplevel path, unless the client explicitly requested a new floating size while the window was in a fixed-size state.

If a window is requested to be maximized or made fullscreen while an uncommitted size request is pending, the surface will first be committed so that the compositor will set the new size when the window is restored.

Fixes the window being wrongly resized when leaving the maximized state in KDE.
2024-07-19 14:15:36 -04:00
Charlie Birks
25559faaea emscripten: restore key event prevent default behaviour
This restores the behaviour before 9221548114 where we only preventDefault the event if:
- the key is recognised
- the event is enabled
- the event is not filtered

(ignoring the KEYPRESS special case, which is unchanged)

(cherry picked from commit 6e931bee01)
2024-07-19 09:41:02 -07:00
Anonymous Maarten
ccebbb6c6e Fix UWP build in non-UNICODE mode 2024-07-19 10:21:34 +00:00
vanfanel
7d83e03ac2 Fix KMSDRM double buffering.
(cherry picked from commit 5ab1151508)
2024-07-18 14:36:58 -07:00
Sam Lantinga
02a072a1b7 Added SDL_ClearSurface() and SDL_ReadSurfacePixelFloat() 2024-07-17 18:04:16 -07:00
Sam Lantinga
b07bd55baf Fixed use of SDL_expand_byte after flipping from bit loss to bit count 2024-07-17 18:04:16 -07:00
Sam Lantinga
cd25cb3435 Check SDL_LockSurface() return value 2024-07-17 18:04:16 -07:00
Sam Lantinga
eefcb62588 SDL_MUSTLOCK() returns true once a surface has the RLE flag set
This more closely matches the mental model of people using SDL, and locking a surface that isn't RLE encoded doesn't cause any issues.

Fixes https://github.com/libsdl-org/SDL/issues/5594
2024-07-17 18:04:16 -07:00
Sam Lantinga
334962b056 Enhancements for SDL_PremultiplyAlpha()
The function can now convert between pixels of different formats, and takes a parameter to control whether the premultiplication is done in sRGB or linear space.

Also added SDL_PremultiplySurfaceAlpha(), which can premultiply the pixels of a surface in-place.
2024-07-17 18:04:16 -07:00
Frank Praznik
b99ea1ff75 wayland: Add SDL_VIDEO_DOUBLE_BUFFER support
Manual cherry-pick of 9e6b8d56e3

thanks @vanfanel
2024-07-17 18:27:46 -04:00
Amir
5db08b86ca Fix warning for Android NDK compiler: "function declaration without a prototype is deprecated in all versions of C [-Wstrict-prototypes]"
https://stackoverflow.com/questions/42125/warning-error-function-declaration-isnt-a-prototype
In C int foo() and int foo(void) are different functions. int foo() accepts an arbitrary number of arguments, while int foo(void) accepts 0 arguments. In C++ they mean the same thing.
2024-07-17 14:09:11 -07:00
Sam Lantinga
761e86e25e Initialize output parameters to reasonable defaults in case of error 2024-07-17 10:27:37 -07:00
Sam Lantinga
5f5e91eab6 Reverted 3d2e5a0b66
Applying these changes to external code doesn't actually improve anything, and within the context of the other Get* functions for renderers and surfaces, these stand out as outliers, so I'm going to back this change out.
2024-07-17 10:27:37 -07:00
Ozkan Sezer
2eda7b2c24 SDL_sysvideo.h: remove SDL_DisplayModeData typedef:
Fixes a type redefinition error:

In file included from /tmp/SDL3/test/../src/events/SDL_events_c.h:28,
                 from /tmp/SDL3/test/../src/events/SDL_pen.c:26,
                 from /tmp/SDL3/test/testautomation_pen.c:83:
/tmp/SDL3/test/../src/events/../video/SDL_sysvideo.h:34: error: redefinition of typedef 'SDL_DisplayModeData'
/tmp/SDL3/include/SDL3/SDL_video.h:78: note: previous declaration of 'SDL_DisplayModeData' was here
2024-07-17 12:30:32 +03:00
Sam Lantinga
3d2e5a0b66 Fixed a few remaining functions to directly return their values instead of an error code. 2024-07-16 21:32:17 -07:00
Sam Lantinga
98bea25363 Converted surfaces with alpha format default to SDL_BLENDMODE_BLEND
Fixes https://github.com/libsdl-org/SDL/pull/4690
2024-07-16 18:50:22 -07:00
Sam Lantinga
2db57e2678 Removed SlowBlitPixelAccess_Unknown
This wasn't actually set anywhere, and not needed.
2024-07-16 18:43:14 -07:00
Sam Lantinga
e41428d259 Added full blit feature support for 8-bit surfaces
Fixes https://github.com/libsdl-org/SDL/issues/8079
2024-07-16 17:57:12 -07:00
Sam Lantinga
b7ec2119dd Use a dither palette when converting RGB images to indexed formats 2024-07-16 17:57:12 -07:00
Sam Lantinga
626bb53772 Fail blits between indexed and RGB surfaces if there is no palette set 2024-07-16 17:57:12 -07:00
Sam Lantinga
9ca1792848 Renamed driverdata to internal
This was done to SDL_DisplayMode for consistency with SDL_Surface and gives it a type so we don't have to do casts in SDL code.

I considered switching to an ID and hashing the driver data, etc. but all of that involved a lot of internal code churn and this solution gives us flexibility in how we handle this in the future.

After consideration, I made this renaming global across the project, for consistency.

Fixes https://github.com/libsdl-org/SDL/issues/10198
2024-07-16 17:17:13 -07:00
Ryan C. Gordon
d40b89dff6 clipboard: SDL_GetPrimarySelectionText() now follows the SDL_GetStringRule.
Reference Issue #10229.
2024-07-16 16:44:36 -04:00
Ryan C. Gordon
158fc459f1 clipboard: SDL_GetClipboardText() now follows the SDL_GetStringRule.
Reference Issue #10229.
2024-07-16 16:44:36 -04:00
Sam Lantinga
ec3bb4c029 Removed the need for SDL_CreateTLS()
This eliminates the tap dancing needed for allocating TLS slots, we'll automatically allocate them as needed, in a thread-safe way.
2024-07-16 12:01:51 -07:00
Ryan C. Gordon
1592452cad video: Fixed remaining return 0 to use NULL in CreateDevice implementations. 2024-07-16 14:26:30 -04:00
Ryan C. Gordon
d78ef58b4b offscreen: Don't ever use this backend unless explicitly requested.
Reference PR #10202.
2024-07-16 14:19:58 -04:00
Ryan C. Gordon
bc1ceb0883 dummyvideo: Change a thing returning a 0 pointer to return NULL instead. 2024-07-16 14:17:02 -04:00
Ryan C. Gordon
045f0456b1 dummyvideo: Change a thing using int to use SDL_bool instead. 2024-07-16 14:15:38 -04:00
Sam Lantinga
027671bedb SDL_GetWindowOpacity() directly returns the opacity instead of using an out parameter.
Fixes https://github.com/libsdl-org/SDL/issues/10286
2024-07-16 09:36:11 -07:00
Sam Lantinga
58270ef3f2 Finished renaming functions in SDL_system.h 2024-07-16 09:35:49 -07:00
Sam Lantinga
54366181c3 Rename functions in SDL_system.h to match SDL 3.0 naming convention
Fixes https://github.com/libsdl-org/SDL/issues/10277
2024-07-15 16:27:48 -07:00
Sam Lantinga
df573391b1 Added SDL_BLENDMODE_BLEND_PREMULTIPLIED and SDL_BLENDMODE_ADD_PREMULTIPLIED
Fixes https://github.com/libsdl-org/SDL/issues/2485
2024-07-15 14:12:33 -07:00
Sam Lantinga
bfee544685 Changed SDL_GetWindowPixelFormat() to return SDL_PixelFormat
Fixes https://github.com/libsdl-org/SDL/issues/10257
Closes https://github.com/libsdl-org/SDL/pull/10258
2024-07-14 07:19:20 -07:00
Sam Lantinga
509f3a42d7 Fixed crash when pumping events after the window has been destroyed on Android 2024-07-13 17:57:46 -07:00
Anonymous Maarten
c80665a696 Avoid code duplication in SDL_GetPixelFormatDetails 2024-07-14 01:20:02 +02:00
pixls
4e3f35ccbf Unlocking mutex in success case too
Without unlocking, we trigger an assertion failure in SDL_sysmutex.c at line 80 (i.e. 'rc == 0'). Each lock-unlock pair should ideally cancel each other out, maintaining a reference count that returns to zero.
2024-07-13 16:12:46 -07:00
Sam Lantinga
650271af46 Added SDL_CreateSurfacePalette() 2024-07-13 14:31:28 -07:00