После семи месяцев разработки опубликован релиз библиотеки SDL 2.28.0 (Simple DirectMedia Layer), нацеленной на упрощение написания игр и мультимедийных приложений. Библиотека SDL предоставляет такие средства как аппаратно-ускоренный вывод 2D- и 3D-графики, обработка ввода, воспроизведение звука, вывод 3D через OpenGL/OpenGL ES/Vulkan и множество иных сопутствующих операций. Библиотека написана на языке Си и распространяется под лицензией Zlib. Для использования возможностей SDL в проектах на различных языках программирования предоставляются необходимые обвязки...Подробнее: https://www.opennet.me/opennews/art.shtml?num=59320
В 3 надо иксы выкидывать.
У девов задача развивать библиотеку, а не похоронить.
Так о том и речь, надо сосредоточить ресурсы на равивитии, и как написано в новости "удалить код для работы на устаревших платформах"
Сначала "Wayland", а точнее популярные библиотеки для клепания своих собственных оконных серверов и клиентов, до ума доведите, чтобы не было из-коробки всё поломанное, а потом иксы хороните. Никто и не против сделать более простую графику для линукса, просто вместо "простой графики" получается какая-то хрень.
> Сначала
> до ума доведите
> а потом иксы хоронитеОпять Аноним управляет разработкой и раздаёт указания.
> Никто и не против сделать более простую графику для линукса
А почему ты не сделал?
> Так о том и речь, надо сосредоточить ресурсы на равивитии, и как
> написано в новости "удалить код для работы на устаревших платформах"А в иксах, типа, из коробки ничего не поломано? Это уг смеет тиринговать в 2023 году, тормозит с дефолтным способом вывода графики что пц, если вы не используете опциональные костыли явно, имеет недетские проблемы с поддержкой современных технологий, секурити, перфомансом, латенси, и вообще, не код а один большой кусок проблем. Настолько страшный и не соответствующий современному состоянию дел что никто туда уже соваться не рискует. И от того что вы тут на форуме орете про ЗБС, этому куску гамнокода лучше не станет. И меньше проблем он создавать не начнет. Так что майнтайнеры систем и графические девы с удовольствием спишут этот кусок проблем в утиль если вы не станете его поддерживать сами. Потому что им этот хлам давно уже во где сидит. Достаточно на комиты в Xorg посмотреть и сравнить с оатсльными комитами в графику, там все прекрасно видно.
В 3-й по умолчанию Wayland, иксы депрекейтед. В 4-й выкинут
Поправил: В 40-й выкинут ;)
Вейланд?
Абсолютное большинство само на Wayland сидит, при этом минусует пост про прекращение поддержки иксов. После сегодняшнего спектакля с "Вагнером" я понял, что не понимаю логику россиян совсем.
Там минусуют не содержание сообщения, а автора. Есть тут один активист... :)
В SDL2 наконец появилась возможность переключать окна альт-табом, а какой смысл переходить на менее функциональную и более урезанную SDL3? О чём-то они не о том думают. Pipewire, который без году неделя существует, дефолтом, опять же.
Так пока ещё SDL 3.0 сделают.
Пока разрабочики осмелятся его использовать ко второму сервис паку (3.2)…
Что встроят в Unreal Engine, то и будут использовать. Именно что фокус сместился с поддержки платформ и универсальности на обслуживание интересов корпораций.
UE упёрся только геймерам и то самым неискушенным.
Движок как маяк чтобы смотреть как сейчас носят.
Он начиная с 2.0 туда сместился. Неспроста же лицензию поменяли. Первым заинтересантом была Valve.
Лицензию сменили задолго до того, как SDL заинтересовалась Valve. Причиной был интерес игроделов в статической линковке с библиотекой.
https://forums.libsdl.org/viewtopic.php?t=7148
> Что встроят в Unreal Engine, то и будут использовать.Вы там что курите? SDL использует куча всего, вообще никак не связанного с UE. Например куча опенсорсных гамес и софта активно рисующего графику. При чем тут UE вообще?
никакого. приоритетная поддержка вяленого и pipewire это плевок в лицо разработчикам и пользователям
Анонима спросить забыли
pipewire - это наследник gstreamerа.
Pipewire наголову лучше PulseAudio, к тому же имеет с ней слой совместимости pipewire-pulse.
Загрузил последнюю федору, звука, как полагается новейшим смузитехнологиям, нету, так же как не было изображения с wayland пару лет назад. Зато звук появляется после выхода из спящего режима. И где примитивнейший процесинг звука? Почему я в 2023 до сих пор не могу в пару кликов включить лимитер, чтобы поднять уровень звука с ютуб выше 100%, но без хрипов? Так приятно смотреть ролики с content loudness в минус 10 и даже 20 децибел. Хотя бы кнопку для подключения LADSPA плагинов сделали, а то единственный путь это ковыряние конфигов и консоль или смириться с тем что есть
EasyEffects не осилил?
Pipewire, в котором даже вывод звука не переключить. Почему в винде переключение вывода делается в два клика мышью?
>использование по умолчанию Wayland и PipeWireТ.е. теперь актуальный SDL больше не будет работать с Xorg и голой ALSA?
>> использование по умолчанию Wayland и PipeWire
> Т.е. теперь актуальный SDL больше не будет работать с Xorg и голой ALSA?"по умолчанию"
Там нет фразы "только Wayland и PipeWire"
Ну, системд тоже когда-то поставили по умолчанию. Попробуй теперь его выкорчевать ;-)
Зато на винде никакого разброда и шатания. Потому что всё в ядре.
На винде обычный экзешник с параметрами сервисом повесить - надо чокнуться.
А вы - системды, системды.
Удаление гланд через ж. — всегда трудное дело.
Ну вот в systemd всё легко вешается, да и вообще в линухах.
А винде - как всегда. Гланды через афедрон.
Вообще-то в винде тоже легко, если осилить первую страницу выдачи гугла.
потому что в винде сервис - это действительно сервис.
Точнее - костыль, делающий вид, что обычный запущенный exe'шник - сервис.
Просто в винде с сигналами проблема, их нема, вот и пришлось эту проблему решать как выше указано :D
В .exe сервиса есть функция возвращая "я ещё жив".Все отличия.
Жизнь без сигналов возможна и хороша Ж-)Подозреваю, что и в OpenVMS их не было. И все отлично себя чувствовали Ж-)
Именно так.
Вот только в systemd я могу хоть чёрта лысого сервисом подвесить.
А в виндузе - как в виндузе.
В Windows -- всё отлично.Не нравится штатные возможности ОС ( а их предостаточно) - есть, например, эдакий супер-комбайн Automate и аналоги.
(
Решил выражаться "в лоб", зато конкретно Ж-)
)
Специальный ключ для более лёгкого достижения гланд через афедрон защитан, да, их там сильно более одного.
А не надо сервисом вешать то, что сервисом быть не предназначено.
> В .exe сервиса есть функция возвращая "я ещё жив".Ну а вот поттеринг в отличие от этих клоунов API вачдогования нормально сделал. Где бинарь желающий чтобы его вачдоговали дергает соотв функцию системды через апи. Что как-то сильно логичнее. Потому что вон то нужно не всем и не всегда, а переписывать все программы... ну вот в винде с сервисами и творится перманентнейший задник.
Более того - изначально сервис это вообще DLL (aka so). Хрен знает как ms до этого допер вообще но вскоре заметил что это не было удачным решением т.к. падение 1 нечто уносило за собой вообще всю толпу. Что как-то "не очень". И появился такой сказочный костыль как процесс-хост для сервисов. Загаживающий список процессов иррелевантным процесссом.
Ну и разумеется при такой структуре получить то что в Linux делается с полоборота, в винде сущее мучение. И так там было всегда. Я могу в лине произвольную программу или скрипт сделать сервисом, используя в том числе и системду, за пару минут. Представляете, некоторые конфигурационные шеллскрипты у меня - допустим тоже "юнит системд" номинально. Как onetime сервисы.
В винде... ээ... упс... а там так вообще нельзя. И если что-то такое хочется, убиться можно. Поэтому сделать при старте системы какое-то неинтерактивное действо автоматически с правами системы там целый весьма отдельный такой гимор.
> Все отличия.
Не все как видим...
> Жизнь без сигналов возможна и хороша Ж-)
Понятия о хорошем у всех разные. DLLки в качестве сервисов - вообще совсем ничего хорошего, ни на уровне концепции, ни на уровне ее костылирования, где все равно пришлось процессом сделать, ни в том как это все работает.
> Подозреваю, что и в OpenVMS их не было. И все отлично
> себя чувствовали Ж-)Да вы можете и на перфокартах программить, чего уж там, нам не жалко.
(
Маловероятно, что поздние версии OpenVMS использовали перфокарты
)В Perl точно есть модуль (?) и с ним скрипт функционирует как сервис.
Несколько нескладное описание, но работает это преотлично.
Чуть выше писал про Automate.
Решает множество вопросов.Со всякими перезапусками повисшего и неотвечающего я работал плотно.
И с нетривиальными случаями, в том числе.
Ок... Закругляемся...
Мне, честно говоря, давненько поднадоело, что здесь в комментариях принято писать несколько непроверенную и недостоверную информацию.
Решил, при случае, писать верную.
(
А про SystemD - не в курсе нужен ли он на Windows.Вот и не пишу о нём Ж-)
И в честь чего "при малейшей опасности" менять ОС целиком?
Не признак ли недостатка навыков и умений? До сих пор удавалось "дожать" средне-мелкие проблемы
)
> В Perl точно есть модуль (?) и с ним скрипт функционирует как сервис.
> Несколько нескладное описание, но работает это преотлично.Теперь попробуйте без посторонней помощи и чужих костылей взять воооон ту программу - и теперь сделать ее сервисом винды. И как вам оно? А, да, большая часть *nix программ еще и собираются как "консольная подсистема" что гарантирует клевое черное окно, добровольно-принудительно.
Ну а вот в линухе юнитом системды можно сделать практически все что шевелится - единственный критерий это отсутствие интерактивности т.к. там некому кнопки жать. Это очень минимальные требования. Остальное опционально. Ну да, есть апи вачдога если кому надо. Но если кто его не умеет, у него просто не будет этой фичи. А работать - будет.
И вот берем какуюнить типовую прогу допустим сетевого *никс-лайк сервиса. Она при старте немного матюкается в консоль, потому что так было удобно мониторить что код делает ее кодеру (значит консоль должна быть) - а потом уходит в фон и вообще не отсвечивает с точки зрения взаимодействия с юзером. В линухе с системд я такое прикручу как "сервис" за пару минут. В винде что-то такое ... в _нормальном_ виде потребует жесткого палчинга кода, и даром что WinSock по сути калька BSD sockets, будут еще отличия именно системного уровня. Вплоть до того что в "гуйных" прогарммах не снабженных принудительной консолью - вызывается WinMain а не main изначально. А в "виндовых сервисах" чего доброго и что-то иное, по изначальной задумке это же не программа а DLL вообще. И вон то за 5 минут в свою систему точно не прикрутишь. Вместо этого целая эпопея получается. Особенно если хочется пользоваться открытым софтом - который в массе своей кроссплатформенный.
> Чуть выше писал про Automate.
> Решает множество вопросов.Я не знаю кто такой Automate - но это _не_ есть штатная фича SCM. И соответственно достоинством SCM не является, хоть тресни. И получается что systemd - жестко сделал майкрософт на их же поле. Сделав что-то немного по мотивам - но намного лучше, мощнее, логичнее, фичастее, с конфигами редактируемыми в моем любимом эдиторе, и без легаси-костылей совместимости и костылинга никакого убогости FAT отдельной БД.
> Со всякими перезапусками повисшего и неотвечающего я работал плотно.
> И с нетривиальными случаями, в том числе.Давайте я скажу что мне нравится делать из линуха эмбедовку работающую без human supervision? Из винды я в принципе не возьмусь сделать те конфигурации которые я на линухе делаю, потому что линух будучи опенсорсом я таки могу перепахать как мне надо было. Начиная от дефолтов кернела (без этого блабла о автопилоте систем смысла не имеет) и заканчивая адекватной реакцией на сбои критичных сервисов. Да, это можно вкостылить сторонними тулсами и своими хаками много где. Но в современном линухе и системд как раз нестандартно костылить стало надо в разы меньше. А Поттеринг запилил ряд фич спецом по просьбам эмбеддеров. От майкрософта такое не дождешься. Ну что, сравнили автоматику? Я вам в ней мастеркласс, имхо, так, даду...
> Не признак ли недостатка навыков и умений? До сих пор удавалось
> "дожать" средне-мелкие проблемыМожно долбить бетонную стену ботинком. И даже проапгрейдиться взяв палки и камни, примотав лианой, получив первобытную дрель. И тут я такой с перфоратором из соседней комнаты - обана, а сейчас уже вот так можно было. Пока вы там 1 дырку ковыряли, перфоратором можно швейцарский сыр сделать, если это нужно. Ну вот и тут примерно так же.
Переход на линух с точки зрения технаря ощущался как жесточайший апгрейд по всем параметрам. Я стал многократно эффективнее. И смог заимплементить многие свои мечты. Не, на винде я бы так не смог. А чисто практически удобно когда у меня на десктопе, серверах и эмбедовке примерно 1 и тот же набор технологий. Реюз кода и знаний это хорошо. И дебажить код проще. В том числе и за счет более удачной реализации, вот, вывода в текстовую консоль, без форсированого окна в нагрузку.
Честно говоря, если открыть .log файл работающего процесса ( включая логи процессов-сервисов) по F3 в Far Manager, то видим на экране последнюю информацию
А вот да, скрипт запустить без батника или прописывания каждый раз запускалки в командной строке - тоже та ещё тема. Гангбанга, простите, гангбанг как раз есть, это шебанга нету.
> А вот да, скрипт запустить без батника или прописывания каждый раз запускалки
> в командной строке - тоже та ещё тема. Гангбанга, простите, гангбанг
> как раз есть, это шебанга нету.У них там в винде примерно такой 🐸🐍 гангбанг. Так то батник и есть скрипт - но запустить именно его, именно SCM? Да еще желательно без страшенной черной консоли в морду юзеру?! Ага, удачи. Наверное так при сильном желании можно - но я даже так сразу это и не изображу. А в системде за пару минут напишу oneshot юнит какой, можно даже "remains after exit" - тогда можно ему stop кастомный заимплементить. Как пример - своя реализация swap on / swap off с какими-то очень кастомными деталями рюхаемыми вон тем списком команд или даже скриптом, и при том - entity в системд, так что я знаю on оно ща или off на уровне "системного менеджмента" в его терминах. Там правда своя схема маунтов не это есть, но если вдруг надо какой-то резко нестандартный овреррайд, возможно не для свопа вообще, так можно было.
А в винде что-то такое... эээ... я бы даже пытаться не стал. Нахрен мне первобытной дрелью колупать бетонную стену, если перфоратор рядом валялся?
Есть утилита от умельцев.Её "вешаем" сервисом. И уже она запускает неприспособленный .exe
Или проблема ещё и параметры передать?
Так возбмите какой Basic или TP , пардон, реинкарнацию fpc и из неё запускаете с параметрами.
А прослойку - без.
И см. ниже как компилировать exe-шник для service
> Есть утилита от умельцев.Гланды, афедрон, вот это всё.
Не от умельцев тоже есть, но сути не меняет.
Ха, ха... Шутку оценил...Но всё, всё же:
-- Вам шашечки или ехать?Ж-)
Мне ехать, поэтому винда исключена.
> Есть утилита от умельцев.Это не заслуга SCM и виндов. А так - есть операционка от умельцев, Linux называется :)
Скорее, это намеренное ограничение SCM, что бы всё подряд не запускали скрытно от пользователя.
C голой ALSA и так уже не все драйвера работают. Драйвера, Карл. На баг-репорты в ядро пишут "используйте PulseAudio".
А как ПульшшшАудио будет работать с кривыми модулями ядра?
У меня такая звуковуха. Прерывания рандомно отваливаются и звук есть только пока дёргаешь курсором мыши. Ну или пульсаудио можно запустить. Только из-за пульсы треск и шипение часто появляются при начале воспроизведения, при окончании, задержки при сике. Неудобно. Без пульсы такого никогда нет.
собери нормальный цапоусь, развязанный от компа. типа objective o2
Может стоит уже сменить ES1938 звуковуху?
А чем плоха ESS? 44.1 поддерживает - значит хорошая
Священная корова компьютерных «аудиофилов» — 44.1К.
Так много драйверов на ALC887? Разве существует что либо иное? ALC1200 которая по сути просто перемаркированная ALC887? Кстати почему до сих пор дрова ALC887 не умеют одновременную запись с двух АЦП? Иногда надо одновременно писать микрофон и линейный вход. Почему до сих пор из коробки я не могу слушать ютуб через гнездо наушников, но чтобы на заднем порте продолжала играть музыка из плеера?
> Так много драйверов на ALC887? Разве существует что либо иное? ALC1200 которая
> по сути просто перемаркированная ALC887? Кстати почему до сих пор дрова
> ALC887 не умеют одновременную запись с двух АЦП? Иногда надо одновременно
> писать микрофон и линейный вход. Почему до сих пор из коробки
> я не могу слушать ютуб через гнездо наушников, но чтобы на
> заднем порте продолжала играть музыка из плеера?Потому что это никто не накодилн, например? В опенсорсе кому работы нужны тот их и работает. А с потребительским настроем и отгибанием пальцев вам лучше в виндочку, для конченых потребителей оно уместнее.
В общем, линукс для десктопа не будет готов никогда.
Т.е. чтобы подстричь себе ногти, юзер должен намайнить себе руды, углы, выплавить сталь и в кузне самому выковать себе ножницы ? Спасибо, не надо такого пути линукса
Оно работает в Ъ-консоли (через drm/gbm)?
Т.е. чтобы рандомную игру можно было запустить без графической/оконной системы.
Вроде через libaa.so умеет, но это не точно
>Из изменений в ветке SDL 3 ... прекращение поддержки ... DirectFB
DirectFB!=DRM/KMS/GBM.
DirectFB - это старье и уже не нужно. Дефолтная консоль в линуксе уже лет 10 как шестерёнки крутить умеет, если звёзды на небе правильно сойдутся...
> DirectFB!=DRM/KMS/GBM.
> DirectFB - это старье и уже не нужно. Дефолтная консоль в линуксе
> уже лет 10 как шестерёнки крутить умеет, если звёзды на небе
> правильно сойдутся...DirectFB это некая странная, экзотичная либа. Раньше она сваталась на случай допустим эмбедовки, если жирные и тормозные иксы запускать фи. Но сейчас нишу занял вяленд который сам нечто типа протокола согласования буферов - без жирной тормозной прослойки сервера с кучей барахла - да еще и системы стали мощнее, 3D какой-никакой даже в мелочи появился и дрова накодили, lima/panfrost/etnaviv соврать не дадут. И на этом фоне та либа как-то не очень уже и нужна с одной стороны, и потому подзаброшена - с другой. И найти ее реальные применения в 2023 году.. эээ... довольно тяжко.
p.s. а если даже ничего на основе вяленда запускать не хочется, логичнее вывод через DRM/KMS делать.
Вчера попробовал, вроде какие-то Игорь пашут. Бэкенд в SDL называется drmkms, для устройств ввода (evdev) нужна поддержка udev (без этого полностью теряется ввод, только sysrq и кнопка power). Тестил на интеле. Я так понял, что желательна поддержка GLES, но может и полноценный opengl заработать.Из того что было заработали astromenace и endless-sky. Quake3 ещё может заработать, но пока pak-файлов не хватает, нужно архивы поднимать... Дум3 из репов выпили, пичаль-бида тоже непотестить... Под HL2 нужно место расчищать... В общем, самое нормальное пока потестить не могу.
> только sysrq и кнопка power). Тестил на интеле. Я так понял,
> что желательна поддержка GLES, но может и полноценный opengl заработать.Это от программы зависит. В SDL можно получить как хардварно акселерированый контекст так и "софтварный" которому вообще ничего не надо. Правда в SDL2 его отосительно 1.х заметно тормознули и если GPU совсем нет, то SDL2 медленней чем SDL 1.x будет. Но работать все же будет. Если конечно программа не хотеля явно какие-то 3D операции сама. Но вот это в SDL уже надо явно заказывать и это вообще-то как таковое не епархия SDL - унификацию 3D операций между платформами оно не предоставляет и есди надо 3D то это уже не проблемы SDL по большому счету. Там есть некоторые функции например помогающие получить контекст GL но что вы там дальше будете с ним делать, SDL вообще не колышет особо, это не к нему уже.
> Из того что было заработали astromenace и endless-sky. Quake3 ещё может заработать,
> но пока pak-файлов не хватает, нужно архивы поднимать...Отсутствие pak-файлов к сабжу мало относится. Xonotic блин возьмите, куда прикольнее кваков для сетевого рубилова. Он вроде как раз через SDL рендерить умеет.
Да, вот тут есть реализация https://github.com/bminor/SDL/blob/master/src/video/kmsdrm/S...
> использование по умолчанию Wayland и PipeWireминус ещё одна либа, печально
wayland - да, печально. pipewire - прекрасно работает, но раз у него есть совместимый с пульсой интерфейс, то наверное следует пульсу по-умолчанию задействовать для максимальной совместимости?
У тебя что ли отнимают SDL2?
Да как бы и SDL3 иксы с пульсой не отнимает.
«минус ещё одна либа, печально» подумал аноним.
«минус один луддит, замечательно» подумали разработчики
> «минус ещё одна либа, печально» подумал аноним.
> «минус один луддит, замечательно» подумали разработчикиВо вы чудики, я код SDL посмотрел, там динамический лоадинг нужных либ - если они есть - и динамическое предоставление фичей. Представляете?!
Если у вас есть иксы и допустим mesa, окей оно будет пытаться юзануть либы иксов для управления окнами и потом закажет себе в этом вулкан, gl или что там - если ваша система так умеет. А не умеет - так там по минимуму можно и "софтварный" 2D сурфейс не акселерированный, как в SDL 1.2 было примерно (тот вообще сам по себе акселерацией не парился). Если проге хватает плоского 2D без акселерации она даже и не узнает что там какие-то отличия. Если ей 3D надо, тут, конечно, уже упс, оно либо есть либо нет (акселерированое).
А если у вас нет иксов но есть вяленд, будут загружены вон те либы. И бэкэндом станет уже вяленд. Программа может даже и не узнать что что-то изменилось, она ж функции SDL вызывает. А если есть одновременно и иксы и вяленд - вот тогда спич о приоритетах какой бэкэнд первым пробовать уже приобретает смысл.
Это же касается и pipewire, pulse, alsa, ... - оно так то может динамически смотреть чего тут есть и пользоваться вот этим. А приоритет актуален только если есть несколько вариантов.
А чего ты это мне пишешь-то?
Оно и понятно. Только про то, что всё совсем работает и не ломается - это в сказке.
> минус ещё одна либа, печально...и 100500 программ которые ей пользуются? Но вообще-то это довольно гибкая либа, у нее эн рендереров и вывода, а вон то - просто приоритет в каком оно модули вывода юзает. А если этой фичи в этой системе нет - ну оно и не будет выводить через этот вывод, откатится до следующего. Это как раз надо чтобы игроделы не парили мозги - иксы там у вас или вэйланд, винда, мак, или даже что-то еще?! С точки зрения апликушника он SDL пользуется. А тот сам транслирует это в то что умеет конкретная система. Это библа низкоуровневой абстракции от системных деталей, чтоб самому не кодить вывод звука через winapi/directx/alsa/pulse/что там у мака... и аналогично с видео и еще некоторыми вещами, скажем, клипбордом и вводом. Потому что если кто хотел кроссплатформенную прогу, врядли они хотели узнать дюжину способов вывода видео и звука в разных ОС самолично.
>ожидается полная переработка кода для работы со звукомаппаратное midi наверняка не добавят :(
Я имею в виду использование midi-sinkов в pipewire.
>Переключение внимания на разработку SDL 3.0В Debian нет.
SFML2, кстати, тоже обновилась спустя годы молчания:
https://github.com/SFML/SFML/releases/tag/2.6.0
Там все на C++, а это сразу нет к биндам к другим языкам
> Там все на C++, а это сразу нет к биндам к другим
> языкамВсё, что нужно знать об экспертах:
and has bindings for various languages such as C, .Net, Ruby, Python.
Эх, жаль QNX. Жаль что его не доработали лет 20 назад до ОС универсального назначения. Ну там планировщики бы поменяли (добавили на выбор новеньких), своп прикрутили и т.д. и т.п. И освободили бы.
А если бы у дедушки была шерсть, он был бы котиком.
Жаль, да.
Только что же была версия 2.0.14, откуда вдруг 2.28? Такие резкий рост версии меня пугает
https://github.com/libsdl-org/SDL/releases/tag/release-2.24.0
Да, я тоже бывает прибухну а как проснусь так неделя прошла