Состоялся релиз библиотеки SDL 2.0.16 (Simple DirectMedia Layer), нацеленной на упрощение написания игр и мультимедийных приложений. Библиотека SDL предоставляет такие средства как аппаратно-ускоренный вывод 2D- и 3D-графики, обработка ввода, воспроизведение звука, вывод 3D через OpenGL/OpenGL ES/Vulkan и множество иных сопутствующих операций. Библиотека написана на языке Си и распространяется под лицензией zlib. Для использования возможностей SDL в проектах на различных языках программирования предоставляются биндинги...Подробнее: https://www.opennet.ru/opennews/art.shtml?num=55618
Wayland.
Pipewire
Amazon Luna и Xbox Series X.спасибо, но нет.
пох triggered, ща опять вонь начнётся.
так ты не разевай больше, чтобы не началась
Ну а разве не пох на пох.?
Пусть повоняет. Хоть пробздится.
> спасибо, но нет.Так то игроделы будут юзать что считают нужным и тебя не спросят.
>> спасибо, но нет.
> Так то игроделы будут юзать что считают нужным и тебя не спросят.так-то на tuxracer мне немножко наплевать. Я как-то перерос такие игори. А все остальные утонули.
fheroes, кстати, собирается с немодным sdl1
Но, к сожалению, sdl это не для игорей придумано. Впрочем, там тоже скоро кроме электрона ничего не будет.
>fheroes, кстати, собирается с немодным sdl1Ну по крайне мере в журнале Линуксформат на уроках програмирования утверждали что сломано очень мало-поправить надо вывод звука и еще один графическую библиотеку заменить,остальное не сломано.И то с звуком есть совместимая библиотека прокладка OpenAl,правда не на все платформы она портирована,позволяет работать и в sdl2.
>fheroes, кстати, собирается с немодным sdl1Специально для немодных есть sdl12compat, который сам добавит спойлер и литые диски на шоху вашего дедушки.
мне не нужен компот с г-ном в вафлянде, мне нужно чтоб его на моей машине не было.
К счастью, пока еще весь относительно нужный софт без ненужно-2 еще собирабелен. Но очень жаль, что одна из наиболее вменяемых в прошлом библиотек отправилась следом за прочим ещеуженеготовымдлядрисктопа мусором.
ну дак не ешь, будто насильно пихают
ну так другой Sdl2 что-то не предвидится.
ну значит тебе никакая не нужна, или ешь эту
> Но, к сожалению, sdl это не для игорей придумано.Factorio на чистом SDL2 сделан, они на него с Allegro в свое время переехали.
Сомнительно, рендеринг скорее всего на "голом" OpenGL.
На самом последнем opengl, который поддерживается маками, для маков и онтопика.
И на DirectX 10.1.
Подробнее: https://www.factorio.com/blog/post/fff-230
Спасибо за ссылку.
Кстати, самая первая версия SDL, руками и ногами торчит из движка первой Дьяблы и Старкрафта.
>Wayland.К тому моменту, когда вяленым можно будет более или менее пользоваться, протухнет абсолютно всё: и Pipewire, и Amazon Luna, и Xbox Series X, и даже сам Wayland. Так что можешь успокоиться.
а кто тебе сказал что ты решаешь, можно или нельзя? Выйдет rhel9, и кумар решит - "можна!" и закроет разработку этого немодного x11 и последнего горе-разработчика уволит.
Может оно и к лучшему. Ведь на голой tty Gnome3 не запустится.
> Может оно и к лучшему. Ведь на голой tty Gnome3 не запустится.он конечно же не запустится, но вот наблюдая как при сборке серверного образа пятый раз ставится-удаляется ненужный тайский фонт - радости тебе и в tty прилетит, мало не покажется.
На сервере можно и даже нужно использовать Alpine Linux или FreeBSD, в зависимости от задачи. А всякие там IBM/systemd/Linux пусть холопы из саппорта мучают.
Умножаю. Используй нормальные операционки, где не накакано в зависимости.
На самом деле одна из лучших низкоуровневых библиотек для индюка и не только.
Спорно. GLFW3 - лучшая, если вам нужно только окно + графический контекст, а всё остальное (OpenGL, OpenAL, libuv) - своё. SDL2 лучше только в поддержке специфичных игровых устройств ввода. Плюс, имеется дополнительная функциональность из коробки (загрузка изображений, шрифтов, примитивный рендеринг и т.п.), но по её охвату и гибкости сильно уступает Allegro5.
Есть ещё SFML - что-то среднее между SDL2 и Allegro по функциональности, но сразу на C++, RAII, вот это всё.
> Спорно. GLFW3 - лучшая, если вам нужно только окно + графический контекст,
> а всё остальное (OpenGL, OpenAL, libuv) - своё.Окно из https://vulkan-tutorial.com под Wayland (всё же своё) у Вас отображается корректно, если изменять размеры? А вот у них проблемы https://github.com/glfw/glfw/issues/1914
У меня Vulkan не поддерживается аппаратно. Как и у аудитории, для которой я делаю игры. Пока только OpenGL. А Вулкан перестанет страдать детскими болячками, когда подрастет, и его начнут уважать "железки".
Там дело не в Вулкане, окном и его размерами рулит Wayland. Vulkan Tutorial привёл в качестве примера, поскольку это как бы официальный пример, но работает он так себе, т.к. обвязка вокруг Wayland немного странная. Остальное они, понятное дело, уже отладили.
С Wayland'ом - аналогично, когда им будет пользоваться больше двух человек, программная поддержка станет сильно лучше. А пока, кому сильно надо, то и чинит. Так работал и работает опенсорс.
Ну вот я посмотрел на имеющуюся реализацию и понял, что мне такое не надо. Боюсь, что я такой не один. Иногда проще написать с листа, чем чинить. Или вытащить из какого-нибудь mpv (если нужна поддержка нескольких платформ). По поводу интерфейса к Иксам и WinAPI ничего не могу сказать, наверное, это работает. Раз люди используют.
Из-за сирых и убогих, наподобие тебя, Linux — 3%. Занялся бы ты чисткой сортиров (между прочим, своей прямой обязанностью) — над Windows смеялись бы, ею пользоваться было бы стыдно.
А еще я вам в штаны наcpaл?Из-за таких вот как вы, любителей дрисктопа и борцунов с проклятой microsoft, линукс из хорошей системы для работы превратился в помойку. И да, успех - 3%, и те в wsl.
А меня вполне устраивал линукс с 0% дрисктопов. У меня уже была одна винда. Внезапно, помимо десктопа есть и другие варианты графических интерфейсов. Впрочем, теперь уже, можно считать, "были".
Очень радует что эта замечательная библиотека продолжает развиваться. Успехов проекту.
Судя по чейнджлогу девушку танцуют очень плотно наши ребята.
Неучто готовят к облачному геймингу - на совершенно не причастных серверах, оф корс - или даже к новым апдейтам прослоек, чтобы инди-хорроры с крафтом про зомби не тормозили даже при кривизне рук смуззиразработчика, стремящейся к полной окружности?
Ээээ... с окружностью вы уже проспали, ныне к восьмёрке стремится.
Ты совсем бо-бо? Там уже не восьмерка, там уже нечто абстрактное: в каждой определенной точке рук - перегиб, каждые полсантиметра там - разрыв!
Значит и я проспал :D
Нет.
> Судя по чейнджлогу девушку танцуют очень плотно наши ребята.
> Неучто готовят к облачному геймингуМнээ... в http://github.com/libsdl-org/SDL/issues/3942 -- определённо нет ;-)
Значит скоро выйдет love2d.
Slime вероятно готовил именно к этой обнове.
да вряд ли
Очень много мусора в SDL. Например у них собственный рендер спрайтов, крайне тормозной. Написанный на коленке SpriteBatch на базе opengl в десятки раз быстрее рендерит
Где твой SDL, анон?
Попробуй им повыводить спрайты на системе без OpenGL.
А в SDL можно.
Но зачем?
за вендой... (
Это где такие системы?
OpenGL 1.2 обнаружен даже на археологических раскопках ВинXP, которая когда-то ему всеми силами сопротивлялась и навязывала юзверю безальтернативный DirectX.
>Написанный на коленке SpriteBatch на базе openglВключаем логику- opengl в 98% случаев сейчас аппаратно ускоренный.А собственный рендер у Sdl софтовый,позволяет работать без аппаратной потдержки.Зачем сейчас софтовые методы вывода-другой вопрос,но есть к примеру языки програмирования где средства графического вывода крайне скудны а биндинг к Sdl написан.
Ты ещё похвались, что они дискетки поддерживают!
Ну какой СЕГОДНЯ компьютер без графона?! Даже распоследний секретутский компьютер - и у того в ЦПУ есть ускоритель! Не надо позорных аргументов, просто признай: вывод спрайтов - говно!
И да, "байндинг", деревня!
> Ну какой СЕГОДНЯ компьютер без графона?! Даже распоследний секретутский компьютер - иКомпьютер то и современный, так операционка древней или не распространеной может быть.Есть порты Sdl на полуось,найку,qnx и т.д.Видиовывод худо-бедно работает,а с аппаратным ускорением беда....
А програмисту не охота в кишках разбираться ,ему бы побрыстрей портировать софт и убежать :-)
Есть же софтовые рендеры opengl, которые притворяются карточкой. Зачем ещё один велосипед и без запаски?
> Есть же софтовые рендеры opengl, которые притворяются карточкой. Зачем ещё один велосипед
> и без запаски?А то что к примеру на Стрикозе или Полуоси такого рендера не будет и что делать
?sdl до фига куда портирована,другое дело что эти порты не официальные,т.к все возможности библиотеки не реализует.
Рендеринг в SDL2 всегда был экспериментальной фичей, как признавали разработчики, не самой удачной.
В таком виде он мало кому нужен: нет API для работы с системами координат, шейдерами и вершинами (как, например, в Allegro5), только примитивы (точки, линии, прямоугольники) прибитые к выводу на экран. Высокоуровневый графический API - это либо к Allegro, либо bgfx к GLFW/SDL прикручивать. А может даже glbindings, если достаточно OpenGL.
Если нужно совсем без мусора, есть GLFW3. Там всё лишнее (загрузка текстур и т.п.) выкинули во время миграции со второй на третью версию.
Opengl не актуально. Надо вулкан, вейланд, вот это вот всё. Однозначный плюс SDL2 в том, что она даёт много контроля пользователю (устройства вв -- даёт выбирать различный предпочитаемый платформозависимый звук, настраивать геймпады, и прочее) и при этом не зависит ни от каких pulseaudio с openal и всего остального и позволяет нормально работать с минимумом абстракций и выбирать удобную конфигурацию (можно выкинуть иксы, вейланд, опенгл, вулкан, алса, что угодно).
> Надо вулкан, вейландКому? 0,00000000001% людей на планете Земля?
OpenGL будет ещё лет 10 актуален. Xorg - ещё лет 5. Минимум. А потом всё написанное будет ещё столько же через XWayland работать. Аналогично с pipiwire - pulseaudio - alsa. Везде прослойки совместимости, старые интерфейсы ещё долго не исчезнут из программ. А новые всё ещё очень плохо работают. И ими, кроме трех разработчиков, и то на работе, никто не пользуется.И SDL совсем не замена OpenGL.
Всем. Не, опенгл всё. Он долго жил из-за того что в макос были древние опенгл, в приставках были древние опенгл, потом в андроиде были древние опенгл. Сейчас не то время, сейчас всё 10 летнее железо поддерживает вулкан и примерно всем уступающий опенгл тащить смысла нет (и тем более нет смысла прибиваться к древнему ограниченному опенгл).Вейланд, ну, возможность запускать нативно это явное конкурентное преимущество для любого софта.
Шитаудио и остальное просто ради удобства, хочется знаешь иногда управлять отдельными звуковыми потоками приложений и прочее всякое.
Алса -- единственный способ выводить звук на линуксе, всё остальное можно выкинуть или заменить совершенно без проблем.
СДЛ не заменяет огл, она его абстрагирует. В основном, оно нужно для работы с вв, устройствами, таймерами, синхронизацией (кто-то ещё использует для загрузки изображений и прочего). Софтрендер СДЛ -- это печальное зрелище, опять же. Можно заменить на кутэ для великого успеха.
Ну а игры на альтернативных прослойках (тот же sfml) -- достаточно печальное зрелище.
>> ограниченный опенгл всёOpenGL и на Винде был древний, но это не мешало производителям железа поставлять туда свежие версии с драйверами. У геймеров всегда был доступ к современному OpenGL на платформе занимающей львиную долю (игровых) десктопов. Вот только "современный" OpenGL всё время технически отставал от DX, спасибо спонсорам из МС, которые саботировали процесс принятия новых стандартов. Благодарая чему, например, в DX уже был программируемый пайплайн, а в OpenGL мечтательно сосали бибу.
Четвертый OpenGL не уступает ни ограниченному одной платформой DX, ни ограниченному поддержкой железа Vulkan. Причем, Vulkan не имеет каких-то особых требований к железу и должен работать там, где поддерживается OpenGL4+. Должен, но не работает. Новое железо само себя не продаст.
Пожалуй, разработчики игровых движков могут выиграть от Vulkan немного производительности, если сильно постараются. Для потребителя большой разницы нет. Тем более пока у него на руках железо, которое могло бы поддерживать Vulkan, но поддерживает только OpenGL. И так будет ещё долго.>> СДЛ абстрагирует
В том то и дело, что SDL НЕ абстрагирует ни OpenGL, ни OpenAL, ни другие "выскокоуровневые" фреймворки. Для разработчиков игр - это даже близко не замена. SDLRenderer - это баловство, а не абстракция. Смешивание звука же - через отдельную библиотеку (sdl_mixer), которая поддерживается на сдачу от основной. Задача SDL - обеспечить *прямой* кроссплатформенный ввод/ввывод, если нужно быстрее, больше, сильнее, есть более гибкие и качественные реализации. Впрочем, разработчики SDL не обещали, что осчастливят всех одной libring, которая правит всеми.
Микрософт продвигала DX просто декларировав интерфейс для драйверов. Юзермодные DX dll возвращают некоторые структуры без изменений от ядра. В результате изначально OpenGL там реализовывалась обёрткой по типу DXVK и теряла где-то 5% (данные Фень Юаня, если правильно помню). Vulkan продвигается ещё проще. Производителю новой железки теперь не надо писать всякие аллокации и триангуляции, это забота разработчиков игровых движков и прослойки Zink от Collabora.
К счастью, в наши дни 5% производительности не играют большой роли. Технологическая гонка больше не направляет индустрию. Инди-разработчикам важнее открытый, бесплатный и кроссплатформенный, движок, чем быстрый, функциональный, но дорогой и прибитый гвоздями к одной платформе. И тут у OpenGL всё ещё есть преимущества. Разумеется, Vulkan когда-нибудь его заменит. Но не сейчас.
Там не 5% в наше время. Есть 4.5 (или 4.3, в 4.3 атомики были?) который имеет костыли нормальной производительности, и есть другие апи у которых без костылей всё прекрасно и можно делать эффективно изначально. Паритет был достигнут только недавно, и сейчас опять вулкану догонять приходится. Вулкан это опенгл с большим контролем у пользователя. Мне кажется некорректно их противопоставлять -- замена одного на другое уже произошла, ещё несколько лет назад.
А баг с тем что при изменении размера окна функции, возвращающие размер окна, отдают значения при старте вместо текущего размера, так и не пофиксили?
Не дает выбрать устройство, когда работаешь через pulseaudio.
Хотя все устройства отображает, но получается открыть только одно. Для другого выдает:>[SDL ERROR] :: Could not connect PulseAudio stream
Под alsa, наоборот находит НЕ все устройства.
Но это можно обойти с помощью
> export AUDIODEV=hw:card,deviceгде числа для card, device можно узнать, например, из
> pacmd list-sinksТ.е. все очень криво, а символьные имена найденных устройств у
SDL отличаются для alsa и pulseaudioКто-нибудь сталкивался с таким? Как обходили?
Истерическая ржака с опеннетных анонимов, евпочя.
Библиотека хорошая, но нужно знать минусы:
1. Задержка ввода слишком большая. Например ioquake который на SDL, в нём заметны задержки мыши, так что играть в принципе нереально.
2. Неявное создание потоков. Для портов python это непонятно к чему приводит, если использовать таймеры sdl
> 1. Задержка ввода слишком большая. Например ioquake который на SDL, в нём заметны задержки мыши, так что играть в принципе нереально.бред, скорее всего у тебя что-то с композитингом.
ещё дополню что в кваке убогая акселерация из коробки, выключается она вот так: in_mouse "1"; cl_mouseAccel "0", и да сейчас вроде ioquake3 не распространяется бинарём(раньше по крайней мере было так, после того как их сайт взломали), советую билдить из исходников.
in_mouse "0" *быстрофикс*