>> Кто-то может объяснить, зачем нужна SDL, если пишется под Vulkan?
> На нем можно сделать что-нибудь например чисто 2D и со звуком. Vulkan предназначен для вывода трёхмерной графики. 2D можно имитировать треугольниками. Звук, очевидно, выводится не через Vulkan. Например, вот я как раз сделал 2D и со звуком https://opennet.ru/53778-game
> Зачем тогда вулкан и вообще его требование?!
Потому что якобы именно с Vulkan проблема в Wayland.
> А надо сие чтобы не
> париться вопросом какая там у кого звуковая систем в разных линях,
> виндах, маке и проч. И как они графику на экран выводят.
> И проч.
Кому это надо? Мак и Виндовс ушли из России.
> Посмотри блин примеры libsdl какие-нибудь не очень древние. Это низкоуровневый уровень
> абстракции для геймдевов от системной конкретики.
Посмотрел. Вот прямо сейчас полез и скопировал:
for (int i = 0; i < imageViewCount; i++) {
framebufferCreateInfo.pAttachments = &imageViews[i];
result = vkCreateFramebuffer(rendererData->device, &framebufferCreateInfo, NULL, &framebuffers[i]);
if (result != VK_SUCCESS) {
SDL_LogError(SDL_LOG_CATEGORY_RENDER, "vkCreateFramebuffer(): %s\n", SDL_Vulkan_GetResultString(result));
return result;
}
}
https://github.com/libsdl-org/SDL/blob/02c63667c7b8107bb2958...
Вот это буквально и есть низкоуровневый уровень. Не низкий уровень абстракции, а низкое качество. Я мог бы сейчас сидеть в луже, если бы не предугадал, что там окажется вот такой вот цикл.
Вся тонкость в том, что Khronos Group спроектировали Vulkan с целью дать программистам максимальный контроль над происходящим. Что бы программисты могли выжимать из железа лишние кадры в секунду.
Вот этот код под Wayland создаст на 1 кадровый буфер больше, чем под X11. Если же как следует подумать и не копировать код из Vulkan Tutorial (что очевидно и проделано), а реализовать ленивую инициализацию, тогда наоборот в Wayland удастся сэкономить 1 буфер.
Проблема вовсе не в Wayland, как тут пытаются преподнести.
> На самом деле либ умеет довольно много чего. Аудио. Вывод графики, 2D
> и 3D. Сеть. Вгрузка разных форматов. Рендер фонтов. В версии 2
> и новее - портабельная работа с клипбордом. Ты же не хотел
> лично кодить куски кода под линухи с разными оконными системами и
> вводом, винду и мак, не говоря про какие там еще андроиды?!
> На которых ЭТО внезапно тоже пашет. Да, игроделы там прожали запуск
> нативного кода.
Если это для примерно таких изделий, как по моей ссылке, то "потеря производительности" не происходит. Там треугольников столько, что нечему тормозить.
> А ты сколько будешь такой код сам выписывать? Вместо реализации задуманных фич
> гамесы или что там у тебя было?
Выше есть ссылка, возьми да и сравни количество строк. И это в игрушке, которая ничего толком не делает. Как только начнётся действительное использование Vulkan, то есть сложное 3D, так вся эта мелочь устремится в объёме к статпогрешности. Зато вон тот цикл уже сожрал совершенно не лишнюю память. И я не хочу тратить время на вопрос "а сколько там еще подобного?"
> Или может, ты желая
> проиграть пару "бзынь!" всегда мечтал для этого написать ресамплер и микшер?
> На случай какого-нибудь луддита с алсой без опционального микшера?! Ну а
> вон то - таки - решает эти вопросы само. И игродел
> может - гамесу делать, а не...
snd_pcm_open() совершенно внезапно работает с устройствами "hw", "pulse" и "pipewire".
> NB: это не движок графона, только низкоуровенвая платформенно нейтральная подложка, позволяющая
> работать с всеми ОС одинаково.
Скорее, позволяющая программисту не париться с написанием элементарного кода. За универсальность приходится платить и "одинаково плохо" вполне себе "одинаково".