Commit Graph

529 Commits

Author SHA1 Message Date
Ryan C. Gordon 69a2d7960c
examples: first shot at description text at top of page. Not working yet. 2024-07-30 13:18:58 -04:00
Ryan C. Gordon 6a25e94472
examples: Print a description of the program to the console on startup. 2024-07-30 12:23:07 -04:00
Sam Lantinga 5e513ecc7f Don't automatically free temporary memory, let the application call SDL_FreeTemporaryMemory() when it's ready.
Also mark up all functions that return temporary memory with SDL_DECLSPEC_TEMP, to help people implementing language bindings.

Fixes https://github.com/libsdl-org/SDL/issues/10378
2024-07-26 10:05:03 -07:00
Frank Praznik 66eb2ea443 mouse: Make pointer warp emulation via relative mode available to all platforms
Move the Wayland pointer warp emulation code up to the SDL mouse layer, and activate it when a client attempts to warp a hidden mouse cursor when the hint is set.

testrelative adds the ability to test the warp emulation activation/deactivation with the --warp parameter and 'c' key for toggling cursor visibility.
2024-07-25 19:57:39 -04:00
Ryan C. Gordon 53022aeb5e
examples: Use the existing CMake infrastructure instead of rolling our own. 2024-07-25 11:56:19 -04:00
Ryan C. Gordon 195c26a50a
examples: Add a way to add datafiles to an example, and add audio/load-wav 2024-07-24 17:30:55 -04:00
Sam Lantinga a7c0192017 Renamed SDL_PostSemaphore() to SDL_SignalSemphore() 2024-07-24 13:37:40 -07:00
Sam Lantinga fa0918a686 Renamed SDL life cycle functions
This maps better to how SDL delivers the events, and the iOS delegate methods are in the documentation for reference.
2024-07-24 05:11:13 -07:00
Sam Lantinga 57dcd7993f Update the package name in the app build.gradle
Also only change the name of the activity in AndroidManifest.xml, not all of the descriptive text saying to change the name of the activity.
2024-07-23 17:06:04 -07:00
Sam Lantinga a432221db5 Specify that this script uses python3
Fixes running on macOS
2024-07-23 17:06:04 -07:00
Sam Lantinga 5c00e54073 Updated SDL_migration.cocci for SDL_GUIDFromString rename (thanks @sezero!) 2024-07-23 08:14:13 -07:00
Ryan C. Gordon 15562564ad
build-web-examples: Run highlight with `--enclose-pre` option. 2024-07-22 23:23:53 -04:00
Ryan C. Gordon 549317e0e4
build-web-examples: Minor tweaks. 2024-07-22 23:05:59 -04:00
Ryan C. Gordon 2de83359ba
build-web-examples: Fix CMake dir. 2024-07-22 22:55:41 -04:00
Ryan C. Gordon 70348d77e1
build-web-examples: It's usually `/bin/bash` on Linux, not `/usr/bin/bash`. 2024-07-22 22:42:32 -04:00
Ryan C. Gordon 5339b4458d
examples: Added initial examples infrastructure. 2024-07-22 22:39:09 -04:00
Ryan C. Gordon 2f6e34d2d0
wikiheaders: Added copyright comment to the top of file. 2024-07-22 22:39:09 -04:00
Sam Lantinga ef21e31a9a SDL_GUIDFromString() renamed SDL_StringToGUID() 2024-07-22 12:39:15 -07:00
Sam Lantinga 61a7a0e579 SDL_GUIDToString() follows the SDL_GetStringRule
Also removed the distinction between SDL_GUID and SDL_JoystickGUID
2024-07-19 12:22:03 -07: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
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 dd08c279e2 Fixed coccinelle patching
Fixes https://github.com/libsdl-org/SDL/issues/10260
2024-07-14 07:15:48 -07:00
Ryan C. Gordon af2dbf3ff3 video: Rename SDL_GL_DeleteContext to SDL_GL_DestroyContext.
Turns out that there isn't a strong OpenGL naming convention for "Delete" ...
WGL offers "wglDeleteContext" but the GLX equivalent is "glxDestroyContext"
and then EGL sealed the deal by going with Destroy as well! Since it matches
SDL3 naming conventions (Create/Destroy), we're renaming it.

Fixes #10197.
2024-07-10 15:54:08 -04:00
Anonymous Maarten d1eab18de2 cmake: build ci and and release with static runtime library
(The Visual Studio projects do this as well)
2024-07-10 19:47:27 +02:00
Sam Lantinga 2ba76dbe80 Simplified SDL_Surface
SDL_Surface has been simplified and internal details are no longer in the public structure.

The `format` member of SDL_Surface is now an enumerated pixel format value. You can get the full details of the pixel format by calling `SDL_GetPixelFormatDetails(surface->format)`. You can get the palette associated with the surface by calling SDL_GetSurfacePalette(). You can get the clip rectangle by calling SDL_GetSurfaceClipRect().

SDL_PixelFormat has been renamed SDL_PixelFormatDetails and just describes the pixel format, it does not include a palette for indexed pixel types.

SDL_PixelFormatEnum has been renamed SDL_PixelFormat and is used instead of Uint32 for API functions that refer to pixel format by enumerated value.

SDL_MapRGB(), SDL_MapRGBA(), SDL_GetRGB(), and SDL_GetRGBA() take an optional palette parameter for indexed color lookups.
2024-07-10 00:48:18 -07:00
Anonymous Maarten 50ae47af5e android: create android project in create-android-project.py python script
This script supersedes androidbuild.sh, and also supports using a SDL3 prefab archive
2024-07-05 21:12:26 +02:00
Sam Lantinga e8dbbf8380 Renamed SDLK_a-z to SDLK_A-Z
Made the symbols uppercase for consistency with the other SDLK_* constants, but the values are still lowercase.
2024-07-01 13:56:49 -07:00
Sam Lantinga 9d816c72ef Updated SDL3 scancode list
This adds more app editing and audio control keys and removes keys that launch applications

Work in progress on https://github.com/libsdl-org/SDL/issues/6390
2024-06-21 22:06:08 -07:00
Anonymous Maarten 1a68d846de Create a functional CMake project using androidbuild.sh 2024-06-18 00:11:44 +02:00
Ryan C. Gordon 7c2329cd78
wikiheaders: Fix C typedef parsing.
Before, it was treating `typedef struct x x;` as a struct typedef instead of
a datatype typedef. Worse, it was treating `typedef struct x *x` the same!

This might require us to manually clean out some incorrect CategoryAPIStruct
tags that have accumulated in various pages.
2024-06-15 11:31:17 -04:00
Ryan C. Gordon c0c0c64a1d
wikiheaders: Some quick scripting to make params/return info consistent.
- Lowercase the first letter of \param and \returns data; in the former case,
  it looks better in the table and Doxyggen (imho), in the latter it's because
  it's inserted after the word "Returns" to make an english sentence on the
  wiki. This is disabled in this commit, but it was useful to turn it on to
  fix up the headers manually.

- Make sure everything ends with punctuation. Inserts a period if there's
  no existing period or exclamation point at the end of the text. This is
  enabled going forward, so we won't have to manage it ourselves.
2024-06-14 02:08:50 -04:00
Ryan C. Gordon 2ad7c70ac6
documentation: clean up a minor syntax issue. 2024-06-13 18:10:28 -04:00
Ryan C. Gordon a9d0eaf34a
wikiheaders: Warn if a function returns non-void but has no `\returns` line. 2024-06-13 16:45:59 -04:00
Ryan C. Gordon 97ec4b0937
wikiheaders: fixed to work with not-SDL3 projects.
(SDL2 still uses DECLSPEC, not SDL_DECLSPEC.)
2024-06-12 19:30:10 -04:00
Ryan C. Gordon fe620f0345
wikiheaders: List parameter and return value datatypes.
This lets them be clickable on the wikipages when they are SDL symbols.

Reference Issue #9236 (the "Missing links" checklist).
Reference Issue #9995.
2024-06-12 19:30:10 -04:00
Anonymous Maarten 32907a9606 Rename SDL_Swap(16|32|64)(LE|BE) to SDL_Swap(LE|BE)(16|32|64) 2024-06-12 02:29:39 +02:00
Ryan C. Gordon 96bb06d9c7
wikiheaders: Clean out extra blank lines in function declarations on wiki.
This has been driving me nuts for awhile now.  :)
2024-06-11 12:37:41 -04:00
Ryan C. Gordon 386aa56711
wikiheaders: Make cleaning out function attributes more generic.
Changes the wiki page's "Syntax" section from things like...

```c
void SDL_LockMutex(SDL_Mutex *mutex) SDL_ACQUIRE(mutex);
```

...to...

```c
void SDL_LockMutex(SDL_Mutex *mutex);
```
2024-06-11 12:30:32 -04:00
Ryan C. Gordon b53f6cf77a
wikiheaders: Removed a FIXME comment. 2024-06-11 11:37:45 -04:00
Ryan C. Gordon 8e782602de
wikiheaders: Fixes and cleanups to fix SDL_ReportAssertion's wiki page. 2024-06-11 11:29:44 -04:00
Ryan C. Gordon c3a4b15a74
wikiheaders: Don't present printf-support compiler metadata in wiki. 2024-06-11 10:58:02 -04:00
Anonymous Maarten 657c0135b1 android: android release binary should only contain a shared SDL3 library 2024-06-10 18:04:18 +02:00
Anonymous Maarten dd0bb25f66 cmake: remove SDL_STATIC_PIC cmake option.
Use CMAKE_POSITION_INDEPENDENT_CODE instead
2024-06-10 18:04:18 +02:00
Ryan C. Gordon 9a9a3d1a33 SDL_SystemCursor: rename enum items to match CSS.
Fixes #9079.
2024-06-01 22:32:43 -04:00
Sam Lantinga df25e4022d Removed short aliases for 16-bit pixel formats
These were potentially misleading in the same way the RGB888/BGR888 aliases were

Fixes https://github.com/libsdl-org/SDL/issues/4994
2024-05-27 07:24:46 -07:00
Anonymous Maarten bba76859f5 cmake: detect CPU architecture in 1 compilation 2024-05-26 23:52:48 +02:00
Sam Lantinga 7a043d9958 Note that SDL_BlitSurface() was renamed SDL_BlitSurfaceScaled() 2024-05-24 05:33:51 -07:00
Anonymous Maarten 86b2f441c0 release: create arm64 Visual Studio binaries
[skip ci]
2024-05-23 00:13:10 +02:00
Anonymous Maarten 85c87f4140 release: use git archive to get sources 2024-05-22 01:28:44 +02:00
Anonymous Maarten 9b0203d9b1 release: Include pdb in Visual Studio release artifacts + build in C:\temp 2024-05-22 01:28:44 +02:00
Anonymous Maarten 45081db9d4 Build Android prefab in releaser.py script
[ci skip]
2024-05-22 01:28:44 +02:00
Sam Lantinga 9d70f1b483 coccinelle doesn't support floating point constants 2024-05-18 16:36:29 -07:00
Sam Lantinga 6f2621438a Renamed DECLSPEC to SDL_DECLSPEC 2024-05-17 17:09:09 -07:00
Brick b6b9d5508e Renamed SDL_MixAudioFormat to SDL_MixAudio, and use float volume 2024-05-17 13:36:51 +01:00
Sam Lantinga 02ff85f2f3 Renamed SDL_SIMDGetAlignment() to SDL_GetSIMDAlignment() 2024-05-16 10:22:15 -07:00
Sam Lantinga 4609af618a Updated logging functions for SDL3 naming convention 2024-05-16 10:22:15 -07:00
Ryan C. Gordon 5e6d85b8f0
wikiheaders: bridge wiki Category docs to the headers!
Did an initial cleanup on the headers and wrote a few pieces of documentation,
but this needs more work to fill out the documentation.
2024-05-16 11:48:23 -04:00
Sam Lantinga fbe7e2e6d3 Moved the SDL version back to SDL_version.h
Added a comment at the top of SDL.h with the current version, for informational purposes
2024-05-15 14:38:29 -07:00
Sam Lantinga 661f2fc1fc Removed the SDL_Version structure, moved SDL version to SDL.h
Inspired by https://github.com/libsdl-org/SDL/issues/9788
2024-05-15 10:43:31 -07:00
Ryan C. Gordon 62a7e419f7
wikiheaders: Automatically categorize API symbols by subsystem. 2024-05-14 13:30:42 -04:00
Petar Popovic 3baec8aab4 Renaming SDLK_QUOTEDBL to SDLK_DBLAPOSTROPHE 2024-05-14 08:46:38 -07:00
Petar Popovic 94cbaaabbf Renaming SDLK_QUOTE and SDLK_BACKQUOTE
Renaming SDLK_QUOTE to SDLK_APOSTROPHE.
Renaming SDLK_BACKQUOTE to SDLK_GRAVE.
This makes them similar to their scancode names.
2024-05-13 11:11:11 -07:00
Sam Lantinga bcbf09acde Renamed SDL_AttachVirtualJoystickEx() to SDL_AttachVirtualJoystick()
The shorthand version of this function didn't allow specifying a controller name, which seems pretty important. It seems like anyone actually implementing a virtual joystick is going to want to use some of the extended functionality.
2024-05-09 14:05:58 -07:00
Ryan C. Gordon 1d2b00efe1
wikiheaders: A few fixes that the SDL2 branch exposed. 2024-05-07 14:23:19 -04:00
Ryan C. Gordon 353001e077
wikiheaders: Fixed LaTeX chapter list and symbol sorting. 2024-05-05 02:44:45 -04:00
Ryan C. Gordon b181e7b1ca
wikiheaders: LaTeX output support.
Reference Issue #9440.
2024-05-05 02:03:44 -04:00
Ryan C. Gordon 0768e0e431
wikiheaders: Fixed See Also section in --copy-to-headers.
This broke when the list bullet markdown was fixed, and then the fixed wiki
data was copied back to the headers.
2024-05-05 01:53:37 -04:00
Ryan C. Gordon a16b76cf80
wikiheaders: Markdown should use '-' for unordered lists, not '*'. 2024-05-05 01:22:45 -04:00
Anonymous Maarten 8f4cab0f83 ci: fix dmg release artifacts
- build-release.py: use absolute paths instead of resolved paths
- xcode: run the shell script with 'set -ex' for extra verbosity +
  failing when an error happens
- On macOS ci, /tmp resolves to /private/tmp, causing the shell script
  to not find the SDL3.xcframework. So don't  use /tmp.
2024-05-05 01:30:07 +02:00
Ryan C. Gordon 77f4ffcc79
wikiheaders: Don't list SDL property `#define`s below functions.
They will still generate "please refer to" pages, though.
2024-05-03 13:19:27 -04:00
Ryan C. Gordon 92bd7d99dd
wikiheaders: Deal with multiline typedefs.
This happens more than once with function pointer typedefs.

Reference Issue #9440.
2024-05-03 13:01:20 -04:00
Ryan C. Gordon 3348d0caaf
wikiheaders: Deal with SDLMAIN_DECLSPEC functions. 2024-05-03 09:31:27 -04:00
Ryan C. Gordon 9f842e9b5a
wikiheaders: Bind `#define`s below a function to it, like typedefs.
This effectively adds the property symbols for various functions to the
function's wiki page.
2024-05-02 12:49:30 -04:00
Ryan C. Gordon eb2c9e9235
wikiheaders: added `--report-coverage-gaps` to see what we aren't covering! 2024-05-01 19:58:21 -04:00
Sam Lantinga e52a2474f1 Fixed updating CMakeLists.txt with update-version.sh 2024-05-01 09:33:30 -07:00
Ryan C. Gordon 12b6c17575
wikiheaders: Generate wiki pages for defines under a typedef.
These are just there to handle cases where a user stumbles upon a symbol
and punches it into the wiki, so they don't get a 404 for it, but rather
a pointer to where that symbol is relevant.

These pages are generated in the wiki if they don't exist, and are never
overwritten, in case text has been added to them. They are also not bridged
back to the headers or added to the set of manpages.
2024-04-30 22:47:02 -04:00
Ryan C. Gordon 5481ea4cd4
wikiheaders: manpages See Also sections should specify 3 vs 3type. 2024-04-30 21:46:56 -04:00
Ryan C. Gordon 9210c68c44
wikiheaders: Manpages go in man3 directory, even if they're 3type. 2024-04-30 21:46:56 -04:00
Petar Popovic 7bfecacc02 Removing function macro SDL_TABLESIZE() 2024-04-29 13:52:48 -07:00
Ryan C. Gordon 2ee1c87eb0
wikiheaders: Fixed preprocessor line check to include `#endif`.
Reference Issue #9557.
2024-04-25 16:46:43 -04:00
Ryan C. Gordon 6b1a98e664
wikiheaders: Allow basic typedefs to pull in some preprocessor logic.
Reference Issue #9557.

This lets SDL_AudioFormat have the `#if byteorder == lilendian` section.
2024-04-25 16:44:09 -04:00
Ryan C. Gordon d29b861a76
wikiheaders: Allow blank lines in post-typedef `#define` blocks.
Reference Issue #9557.
2024-04-25 14:26:49 -04:00
Ryan C. Gordon 2fb024ab8e
wikiheaders: Defines directly following a non-struct typedef are documented.
The idea is that if you have a `typedef Uint32 MyFlags` that has a bunch of
defines that are meant to be bitflags, you can pack them into the same wiki
page automatically.

This only works with `typedef`s that are _not_ struct/union/enums, and it
only pulls in `#define` lines that immediately follow the typedef line.
Even a blank line or a comment will signal to stop including lines for
this page!
2024-04-25 03:02:27 -04:00
Ryan C. Gordon 093160904d
SDL_Keymod: Removed SDL_KMOD_RESERVED.
Fixes #9481.
2024-04-17 17:30:10 -04:00
Brick 8f6f9cadc4 Rewrote audio resampler using cubic filter interpolation
This allows using a much smaller (1.5 KB) lookup table, in exchange for a small amount of extra work per frame.

The extra work (a few extra loads/mul/adds) is negligible, and can execute in parallel.
The reduction in cache misses almost certainly outweighs any added cost.

The table is generated at runtime, and takes less than 0.02ms on my computer.
2024-04-15 11:47:18 -10:00
Petar Popovic 56e6f05440 SDL_RendererFlip rename fixes 2024-04-15 03:32:23 -10:00
Ryan C. Gordon 21bc72bef1
wikiheaders: Allow parts of the headers to be ignored.
The specific cases here were SDL_size_mul_overflow_builtin and
SDL_size_add_overflow_builtin, which are forced-inline symbols in
SDL_stdinc.h that have to exist, but aren't really part of the public API,
and thus shouldn't be exported as documentation.
2024-04-13 22:57:23 -04:00
Ryan C. Gordon 3c86af5901
wikiheaders: Add support for SDL_FORCE_INLINE functions. 2024-04-13 20:08:14 -04:00
Ryan C. Gordon 6e1ed94913
ios: Renamed APIs that referred to "iPhone" to refer to "iOS".
Macros that papered over this difference in SDL2 have been removed for SDL3.

Fixes #9527.
2024-04-13 14:30:30 -04:00
Ryan C. Gordon 98e9f361a8
winrt: Remove SDL_WinRTGetFSPathUNICODE, rename SDL_WinRTGetFSPathUTF8.
Fixes #9470.
2024-04-13 08:24:12 -04:00
Ryan C. Gordon 1e369b7f33
build-scripts/fnsince.pl: Remove SDL2-specific fixup. 2024-04-13 08:05:43 -04:00
Ryan C. Gordon 0df988389c
include: Add `\since` to all documentation that was missing it. 2024-04-11 13:34:29 -04:00
Ryan C. Gordon db39de7f63
build-scripts/fnsince.pl: Updated to use Markdown instead of MediaWiki format. 2024-04-11 13:29:04 -04:00
Ryan C. Gordon af6a4a9e38
wikiheaders: Fixed a silly logic bug. 2024-04-11 08:57:50 -04:00
Ryan C. Gordon 6ccdfffe26
wikiheaders: Fixes to manpage output for datatypes vs functions. 2024-04-11 01:03:07 -04:00
Ryan C. Gordon 5a58b3d97a
wikiheaders: Bridge basic typedefs to the wiki! 2024-04-11 00:37:11 -04:00
Petar Popovic 9b5944a14f Removing SDL_Colour macro 2024-04-09 12:25:36 -04:00
Ryan C. Gordon 645073961d
wikiheaders: Don't mangle Markdown tables in wordwrap. 2024-04-09 00:50:02 -04:00
Ryan C. Gordon a25d49c162
wikiheaders: Bridge structs, unions, and enums to the wiki! 2024-04-09 00:50:02 -04:00