- return on errors
- do not set the position when neither display/x/y was set (prevent
Wayland errors)
- check that the only x/y or display was set (not both position and
display)
The lenght check was not functional for eg. pos=5,6 - the first number
was rejected because endpos was 1 but lenght of the string 3.
broken since 2025-09-05 (with the commit 4290a298)
Do not use logger. Dump tree uses plain stdout so make this the same
(the warning is currently displayed multiple times, for every ancestor
in tree and so the logger issues that the message is repeated n-times
which gets messed with the plain printfs).
+ print the SDL_SetWindowPosition in verbose mode also in
Wayland (currently always an error - we are calling it with
x/y=SDL_WINDOWPOS_CENTERED_DISPLAY(0) if nothing is specified).
The parsing made more C-string based (because IS_KEY_PREFIX expects
that). It can be made more string_view using again later but it seems
to be more short now).
this also fixes gpu=integrated|discrete
This is a bit tricky because the ID seems to be a (small) ordinal and may
potentially clash with the index... Index is considered first, this
approach may bbe re-evaluated (eg. letters for the indexes?).
The name default.sf3 is no longer required, the soundfont name is resolved
directly so use the original name. It is TimGM6mb derivative with just
piano downloaded from:
<https://musical-artifacts.com/artifacts/2642>
This simplifies things a bit at the expense that the soundfont is always
included/installed (91 kB).
Added get_data_path() function for generic handling the path to common
data (eg. /usr/local/share/ultragrid if installed). The idea is to catch
all cases - installed (run with absolute or relative path) or run from
inside the source directory in one place.
A common way would be to use generic FPS indicator. But a slight problem
is that _putf return value isn't entirely reliable for this module,
since the frame may be dropped later doe to insufficient performance.
Because of the above, do not use the generic indicator, at least
for now. But use the common function to make the output "prettier"
(bold/color and if not performing well also use a color for FPS).
Add MODULE_FLAG_ALIAS (+ complete API) for modules that are not hidden
as technical/deprecated moudles but rather an alias.
The difference is important for GUI not to print aliased module twice.
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