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
Brick
40ed098ce8
Improve the bucket distribution of SDL_HashTable
...
SDL_HashID does no hashing, which isn't good if the lower bits of the key aren't evenly distributed.
2024-07-09 20:50:26 +01:00
Brick
d604555142
Replace BlitRGBtoRGBSurfaceAlphaMMX
2024-07-08 20:59:42 +01:00
Brick
d37f8fa2b3
Optimize BlitRGBtoRGBSurfaceAlpha
2024-07-08 20:59:42 +01:00
Brick
fde2378ccd
Refactor alpha blitters, move the SSE41/AVX2 versions into SDL_blit_A.c
2024-07-08 20:59:42 +01:00
Brick
43a5da358d
Set ALLOWABLE_ERROR_BLENDED to 0
2024-07-08 20:59:42 +01:00
Anonymous Maarten
1cddc7b66e
sdlprocdump: exceptions are not handled
2024-07-08 21:30:49 +02:00
Anonymous Maarten
c4cbbca185
sdlprocdump: ignore C++ exceptions
2024-07-08 20:48:33 +02:00
Sam Lantinga
d6c8485f28
Make sure we're actually running on Windows before using D3D renderers
2024-07-08 11:36:11 -07:00
Sam Lantinga
4d5f139f0f
Add the blit automation tests
2024-07-08 10:58:48 -07:00
Brick
c457dbb629
Fix BlitNtoNPixelAlpha for formats with no dst alpha
2024-07-08 10:53:46 -07:00
Brick
3c59d3f69c
Remove old references to blitter files
2024-07-08 10:53:46 -07:00
Brick
95b683ac3e
Tidy up/optimize BlitNtoNPixelAlpha_SSE4_1
2024-07-08 10:53:46 -07:00
Brick
070e48f66e
Tidy up/optimize BlitNtoNPixelAlpha_AVX2
2024-07-08 10:53:46 -07:00
Brick
5d875aa94e
Fix rounding in MULT_DIV_255
2024-07-08 10:53:46 -07:00
Isaac Aronson
b7b513b70b
Fix bytes_per_pixel rename
2024-07-08 10:53:46 -07:00
Isaac Aronson
44d397282d
Re-enable intrinsic blitters
2024-07-08 10:53:46 -07:00
Isaac Aronson
b34faf732d
Implement fast 255 mult-div in SDL_blit_auto
2024-07-08 10:53:46 -07:00
Isaac Aronson
23d4e9ec13
Support VisualC-WinRT UWP build
2024-07-08 10:53:46 -07:00
Isaac Aronson
8d099d8976
Fix formatting
2024-07-08 10:53:46 -07:00
Isaac Aronson
8e3afd56f5
Restore BlitARGB 555 and 565 blending algorithms
2024-07-08 10:53:46 -07:00
Isaac Aronson
5cec91e27a
Implement accurate, performant 32-bit scalar blitter for ARGB dst case
2024-07-08 10:53:46 -07:00
Isaac Aronson
e5bbe32641
Implement alpha blend as macro and replace inaccurate blitters
2024-07-08 10:53:46 -07:00
Isaac Aronson
0f351cd6af
Remove ARM32 assembly/pixman blitters
2024-07-08 10:53:46 -07:00
Isaac Aronson
3ecb927587
Remove last non-SDL types from test
2024-07-08 10:53:46 -07:00
Isaac Aronson
adca9d408e
Fixup tests to use correct types
2024-07-08 10:53:46 -07:00
Isaac Aronson
f5ee88c2cf
Implement mathematically correct scalar blitters
2024-07-08 10:53:46 -07:00
Isaac Aronson
f0238ef615
Fix build issues
2024-07-08 10:53:46 -07:00
Isaac Aronson
594ca1a897
Add testautomation suite for alpha blending
2024-07-08 10:53:46 -07:00
Isaac Aronson
9590a47629
Implement visually accurate SIMD blitters
2024-07-08 10:53:46 -07:00
Isaac Aronson
f6f12d0451
Revert "Remove buffer in SSE4.1, use unpacklo and packus intrinsics"
...
This reverts commit 149cd55840e7fdfd5ecde5c545aede5822abd14e.
2024-07-08 10:53:46 -07:00
Isaac Aronson
a027ad9788
Remove buffer in SSE4.1, use unpacklo and packus intrinsics
2024-07-08 10:53:46 -07:00
Isaac Aronson
2432b6686e
Add back in buffer free removed during testing
2024-07-08 10:53:46 -07:00
Isaac Aronson
380bcff018
Allow arbitrary dstfmt in 1 pixel case; naming and const cleanup
2024-07-08 10:53:46 -07:00
Isaac Aronson
87958f44d0
Support arbitrary destination formats; remove buffer from AVX2
2024-07-08 10:53:46 -07:00
Isaac Aronson
c80c540be3
Support older GCC and clang that lack some intrinsics
2024-07-08 10:53:46 -07:00
Isaac Aronson
e8cba442c5
Clean up API surface to use attribute macros and rename convertPixels
2024-07-08 10:53:46 -07:00
Isaac Aronson
bac318fc27
Check for SSE4.1 first as more common
2024-07-08 10:53:46 -07:00
Isaac Aronson
12d18c7497
Add back glob for src/video/*.c to CMakeLists.txt
2024-07-08 10:53:46 -07:00
Isaac Aronson
735cf5a6f9
Relocate intrinsic modules to src/video/
2024-07-08 10:53:46 -07:00
Isaac Aronson
f68a7edcf8
Properly shortcut only when AVX2 or SSE4.1 available
2024-07-08 10:53:46 -07:00
Isaac Aronson
3e0581c625
Merge upstream and sdl3-blitters
2024-07-08 10:53:46 -07:00
Frank Praznik
159d7087c6
wayland: Only set the window geometry when viewports are unsupported
...
Setting the window geometry on the xdg-toplevel path is a hack used to prevent protocol violations if a buffer with an old size is committed. Since viewports decouple the window geometry from the buffer size, this is not needed if viewports are supported.
Fixes an invalid window geometry warning and incorrect window overview size for fullscreen windows in GNOME.
2024-07-08 11:40:54 -04:00
Sam Lantinga
4fa5196820
Revert "Switch pixel format loss fields to number of bits"
...
This reverts commit 3c90b1c1f6
.
It turns out this is problematic for sdl2-compat. We're investigating a more complete separation between SDL2 and SDL3 surfaces, but in the meantime, I'll fix the breakage.
2024-07-07 19:41:05 -07:00
Anonymous Maarten
18c9bd21b5
sdlprocdump: become C90 compatible
2024-07-07 21:18:16 +02:00
Anonymous Maarten
4d6b23b68f
mingw: use DESTDIR to change the install location of the mingw package
2024-07-07 20:35:33 +02:00
SDL Wiki Bot
bfa4e71284
Sync SDL3 wiki -> header
2024-07-07 18:05:35 +00:00
SDL Wiki Bot
e37d6f71b3
Sync SDL3 wiki -> header
2024-07-07 18:02:15 +00:00
Giovanni Petrantoni
a057240984
Fix vision os fake screen size
...
It never really worked, as the value was arbitrary, digging apple docs showed the right values.
2024-07-06 20:49:23 -07:00
Sam Lantinga
3c90b1c1f6
Switch pixel format loss fields to number of bits
...
This makes more sense and handles pixel formats with > 8 bits per channel
Fixes https://github.com/libsdl-org/SDL/issues/10168
2024-07-06 11:37:16 -07:00