Unpin SDL version 2 - SDL 3 can be now considered idempotent.
Issues mentioned in sdl3:
- sdl_mixer -> replaced with fluidsynth
- Vulkan issues - Vulkan is currently (SDL 3.20) not implicit in either
of platforms; if so, trigger a warning. Also it is unavailable in SDL2.
- p010 corruption in Direct3D 11 or 12 - there is already a workaround
to disable
To replace sdl3_mixer that does no longer support MIDI playback, thus
unusable for our use case.
- song1 needs to be static included potentially from 2 compilation units -
this and sdl_mixer
The variable #MSYSTEM_CHOST is taken as the base (/etc/config.site) and
contains now in MSYS x86_64-pc-cygwin resulting in $host_os=cygwin. Not
sure where the variable is defined, anyways...
SDL_mixer 3.0 rwmoved support for native MIDI [1], which was the reason it
was used for so refuse that.
Note that at this this moment, the latest released SDL_mixer version is
2.8.1, anyways. But it can be installed from Git.
[1]: https://wiki.libsdl.org/SDL3_mixer/README-migration
If running from inside out-of-tree build, the shaders were not located -
now look them up in srcdir (if the the formerly looked shader directory
doesn't exist).
This improves the commit f8b54ea9 from 2013 - currently _GNU_SOURCE is
required eg. for pthread_setname_np. Intantionally used not only with
glibc but also with musl - if not defined pthread_setname_np is not
defined.
+ add COMMON_FLAGS also to CPPFLAGS (doesn't matter much but better)
For actual sdl check, the emptiness of sdl_version is evaluated. But later
it is useful to have it =0 for numeric comparisons (2c577ace) so set it
in after sdl check. The depending modules can use $sdl variable later.
linux/videodev2.h is part of kernel headers and is usually present
But if it isn't, do not compile the stuff - there are defined the macros
that are required to compile.
On mac, we can link either to MoltenVK or the vulkan-loader. The MoltenVK
variant is default, because the bundler then bundles the library as the
compat layer. If linked to vulkan-loader, Vulkan will likely not work if
the MoltenVK is not installed on the host computer.
But it is useful for debugging (the behavior is slightly different if
loaded via vulkan-loader even if the backend is MoltenVK - the KHR
portability bit/enumeration stuff).
but not if sdl2 is SDL3 sdl2_compat - this won't bring any advantage
There is still some issues with 3 that was not with v2 - see sdl3.c and
sdl_mixer.c heading. Also, there is still no stable SDL_ttf release,
and even not a preview v3 build of SDL_mixer.
CUDA_FLAGS were used to get the flags passed to nvcc. But cmake uses
CUDAFLAGS and it is perhaps more convenient (similar to CFLAGS, CXXFLAGS)
so accept both.
Added accidentaly by the commit 73572e77 (2024-03-05). Effective only
if --with-cuda option used but without any implications - just `/FOUN:
not found` printed, but processed normally.
Matrix (1) doesn't seem to be generic enough in case of UYVY.
THe aim is, among others, last resort fix of the BT.601 problem when
got from QSV compression and no YCbCr->RGB conversion took place.