The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Выпуск мультимедийной библиотеки SDL 2.0.18

01.12.2021 10:55

Состоялся релиз библиотеки SDL 2.0.18 (Simple DirectMedia Layer), нацеленной на упрощение написания игр и мультимедийных приложений. Библиотека SDL предоставляет такие средства как аппаратно-ускоренный вывод 2D- и 3D-графики, обработка ввода, воспроизведение звука, вывод 3D через OpenGL/OpenGL ES/Vulkan и множество иных сопутствующих операций. Библиотека написана на языке Си и распространяется под лицензией zlib. Для использования возможностей SDL в проектах на различных языках программирования предоставляются биндинги. Код библиотеки распространяется под лицензией Zlib.

В новом выпуске:

  • Для каждой функции предоставлена информация о версии SDL, в которой данная функция появилась. Обеспечена автоматическая синхронизация документации в wiki с заголовочными файлами.
  • Добавлены новые функции:
    • SDL_RenderGeometry() и SDL_RenderGeometryRaw() для отрисовки произвольных фигур при помощи 2D Render API.
    • SDL_SetTextureUserData() и SDL_GetTextureUserData() для привязки данных приложения к текстуре.
    • SDL_RenderWindowToLogical() и SDL_RenderLogicalToWindow() для преобразования между координатами окна и логическими координатами отрисовки.
    • SDL_RenderSetVSync() для включения синхронизации вывода с кадровым гасящим импульсом (vblank).
    • SDL_PremultiplyAlpha() для применения прозрачности к блокам пикселей в формате SDL_PIXELFORMAT_ARGB8888.
    • SDL_SetWindowMouseRect() и SDL_GetWindowMouseRect() для ограничения движения курсора мыши заданной областью окна.
    • SDL_GameControllerHasRumble(), SDL_GameControllerHasRumbleTriggers(), SDL_JoystickHasRumble() и SDL_JoystickHasRumbleTriggers() для проверки поддержки игровым контроллером и джойстиком эффекта адаптивной вибрации (rumble)
    • SDL_GetWindowICCProfile() для получения цветового ICC-профиля окна (для проверки изменения профиля предложено событие SDL_WINDOWEVENT_ICCPROF_CHANGED).
  • Добавлены новые признаки: SDL_HINT_APP_NAME для передачи сведений о названии приложения и SDL_HINT_VIDEO_EGL_ALLOW_TRANSPARENCY для включения прозрачности для окон EGL.
  • Добавлено новое событие окна SDL_WINDOWEVENT_DISPLAY_CHANGED, которое генерируется при изменении экрана, на котором показывается окно.
  • Предоставлена возможность определения точных параметров движения колеса мыши при помощи полей "preciseX" и "preciseY" в параметрах события.
  • Функция SDL_WaitEvent() переработана для снижения нагрузки на CPU.
  • API hidapi переведён в категорию публичных и теперь доступен через заголовочный файл SDL_hidapi.h.
  • На платформе Windows улучшено определение относительного движения мыши в Windows Remote Desktop. Добавлен признак SDL_HINT_IME_SHOW_UI для показа родных компонентов интерфейса (по умолчанию скрываются). Для UWP-приложений вместо XInput задействован WGI для улучшения поддержки контроллеров ввода.
  • Для платформы Linux реализованы признаки: SDL_HINT_SCREENSAVER_INHIBIT_ACTIVITY_NAME для привязки действий, отображаемых при отключении хранителя экрана; SDL_HINT_LINUX_JOYSTICK_CLASSIC для выбора какое из устройств (/dev/input/js* или /dev/input/event*) использовать для джойстика; SDL_HINT_JOYSTICK_DEVICE для установки устройства, открываемого для джойстика. Добавлена функция SDL_LinuxSetThreadPriorityAndPolicy() для управления расстановки приоритетов для потоков.
  • Для платформы Android реализована поддержка вывода и захвата звука при помощи API AAudio. По умолчанию отключена поддержка контроллера Steam Controller (для включения предложен признак SDL_HINT_JOYSTICK_HIDAPI_STEAM).

Дополнение: Один из авторов SDL Райан Гордон (icculus) сообщил, что планирует добавить в SDL простой 3D API, поддерживающий возможности API современных GPU (Vulkan, Direct3D 12, Metal). Финансировать эту разработку будет компания Epic Games, в рамках программы Epic Megagrant. Заявку на грант Гордон подал в мае 2021, а две недели назад получил положительный ответ.

  1. Главная ссылка к новости (https://discourse.libsdl.org/t...)
  2. OpenNews: Выпуск мультимедийной библиотеки SDL 2.0.16
  3. OpenNews: Проект SDL переходит на Git и GitHub
  4. OpenNews: Релиз мультимедиа-библиотеки SDL 2.0
  5. OpenNews: Мультимедийная библиотека SDL переходит на новую схему нумерации выпусков
  6. OpenNews: Уязвимость в библиотеке SDL, приводящая к выполнению кода при обработке изображений
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/56257-sdl
Ключевые слова: sdl
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (28) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (1), 11:12, 01/12/2021 Скрыто ботом-модератором [﹢﹢﹢] [ · · · ]     [к модератору]
  • –15 +/
     

     ....ответы скрыты (2)

  • 1.3, BratishkaErik (ok), 11:19, 01/12/2021 Скрыто ботом-модератором [﹢﹢﹢] [ · · · ]     [к модератору]
  • –7 +/
     

     ....ответы скрыты (5)

  • 1.8, Zenitur (ok), 12:09, 01/12/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    У меня вопрос. В старых дистрибутивах Linux, таких как RHEL 5, для многомониторных конфигураций использовалась библиотека Xinerama. Однако, сразу после релиза RHEL 5, в следующей же версии Fedora, стали использовать Xrandr для этого. Ранее, Xrandr 1.1 использовался только для смены разрешения экрана. Тогда как версии Xrandr 1.2 делегировали полномочия работать с несколькими мониторами.

    Во времена RHEL 5, библиотека SDL 1.2 не умела "рулить" многомониторными конфигурациями. Однако, в версии SDL 2.0, такая поддержка появилась. В тот момент, уже был актуален RHEL 6, где многомониторными конфигурациями рулил Xrandr.

    Вопрос: как SDL понимает, что ему использовать: Xinerama или Xrandr? Или он умеет только через Xrandr?

     
     
  • 2.13, Аноним (13), 13:26, 01/12/2021 [^] [^^] [^^^] [ответить]  
  • +/
    С каких пор многомониторные конфигурации в SDL заработали, чтобы думать об этом? Я видимо пропустил.
     
  • 2.14, Михрютка (ok), 13:52, 01/12/2021 [^] [^^] [^^^] [ответить]  
  • +3 +/
    последний раз, как я смотрел, там xrandr вообще был задизаблен без суда и следствия. Сэм сказал, что "тут всю систему менять надо", а кому надо - включайте руцями и ебилдитесь.
     

  • 1.10, Ананас (?), 12:42, 01/12/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Когда будет 3D в SFML?
     
     
  • 2.12, Аноним (12), 13:15, 01/12/2021 [^] [^^] [^^^] [ответить]  
  • +/
    А в чём проблема? Делаешь буфер с пикселями uint8, рисуешь туда своё три-дэ, рисуешь через sfml::Image.
     
  • 2.16, Михрютка (ok), 15:19, 01/12/2021 [^] [^^] [^^^] [ответить]  
  • +/
    в SDL - скоро будет.
     
  • 2.18, Андрей (??), 15:51, 01/12/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Официально - никогда(на форумах и в чаво было об этом сказано), с другой стороны никто вам не запрещает использовать библиотеки расширяющие sfml до 3Д, которые есть на ГХ
     

  • 1.21, Аноним (21), 17:17, 01/12/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > SDL_RenderGeometry() и SDL_RenderGeometryRaw()
    > SDL_SetTextureUserData() и SDL_GetTextureUserData()
    > SDL_RenderWindowToLogical() и SDL_RenderLogicalToWindow()

    Любопытно. Пожалуй, надо дать SDL_Renderer второй шанс.
    Вот бы ещё матричные трансформации, как в Allegro 5.

     
  • 1.23, prokoudine (ok), 20:32, 01/12/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > Заявку на грант Гордон подал в мае 2021, а две недели назад получил положительный ответ.

    Там немного интереснее. Он подавался дважды. В первый раз указал сумму и не прошёл. Во второй раз сумму не указал и получил спонсирование.

     
     
  • 2.28, Михрютка (ok), 22:58, 01/12/2021 [^] [^^] [^^^] [ответить]  
  • +/
    нене, то вы с прямым углом перепутали.

    он у себя в твитере писал, что перед этим просил грант на разработку трассировщика для openal, совершенно другой проект.

     

  • 1.24, Аноним (24), 21:36, 01/12/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    > Один из авторов SDL Райан Гордон (icculus) сообщил, что планирует добавить в SDL простой 3D API

    С одной стороны, прикольно, но с другой - почему бы в качестве этого простого 3D API не взять OpenGL 1.X, а реализацию под капотом уже делать на Vulkan/Direct3D/Metal? OpenGL 1.X ведь и так простой. Плюс маленьким бонусом идет возможность легкого портирования древних программ/игр.

     
     
  • 2.29, maximnik0 (?), 23:01, 01/12/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >почему бы в качестве этого простого 3D API не взять OpenGL 1.X

    Sdl и так потдерживает OpenGL .Почитайте про историю разработки-фирма loki занималась портированием игр на макось и линукс,для упрощения портирования и была разработана sdl,для абстрагирования от зависимости в особенности  операционных систем и графического Ари и оборудования.Т.е теоритически игра если использует кроссплатформенную часть Sdl - приложение должно быть кроссплатформенно.

     
     
  • 3.30, Аноним (24), 23:32, 01/12/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Ну так Гордон же пишет:

    > Our attitude has always been "the 2D API is super-easy to use and if you outgrow it you should use OpenGL directly."
    > But this is terrible advice in 2021, because OpenGL, for all intents and purposes, is a deprecated API. It still works, it's still got some reasonably modern features, but even if you add up the 22 years Microsoft spent trying to kill it with Apple's seven-or-maybe-twenty, it doesn't change the fact that the brains behind OpenGL would rather you migrate to Vulkan, which is also terrible advice.

    Т.е. речь идет о том, что OpenGL забрасывают производители железа, а именно версии с fixed pipeline (1.X, 2.X) вообще уже давно официально deprectaed. При этом OpenGL 1.x именно как API (а не как конкретная его реализация на конкретном железе) вполне себе простой и проверенный временем - так почему бы не взять его за основу, приделав под капотом Vulkan/Metal и т.п.?

    Учитывая, каким эпик фейлом получился 2D API в SDL, я сомневаюсь, что у его разработчиков хватит компетенции придумать адекватный 3D API, а не бесполезный огрызок. Реализация OpenGL 1.x поверх современного API такое в принципе исключает.

     
     
  • 4.32, Михрютка (ok), 00:24, 02/12/2021 Скрыто ботом-модератором     [к модератору]
  • +/
     
  • 2.31, Михрютка (ok), 00:16, 02/12/2021 [^] [^^] [^^^] [ответить]  
  • +/
    птушо что сейчас писать на opengl 1.* 30-летней давности под современное железо - то же самое, что сейчас писать новые программы под Win3.1? птушо, что Icculus имеет некоторый опыт портирования игоря под gl?

    >>>маленьким бонусом идет возможность легкого портирования древних программ/игр

    досбокс/$ВАШЛЮБИМЫЙЭМУЛЯТОР спектрума/атари/плейстейшона уже портировал все древнее, что нужно.

    что не нужно, можно портировать на qemu.

     
     
  • 3.34, Zenitur (ok), 11:49, 02/12/2021 [^] [^^] [^^^] [ответить]  
  • +/
    > птушо что сейчас писать на opengl 1.* 30-летней давности под современное железо - то же самое, что сейчас писать новые программы под Win3.1?

    А что там WebGL, какой версии OpenGL он соответствует?

     
     
  • 4.35, Жорш (?), 17:48, 02/12/2021 [^] [^^] [^^^] [ответить]  
  • +/
    OpenGL ES 2.0
     

  • 1.26, ivanpetrov (ok), 22:16, 01/12/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > Библиотека […] распространяется под лицензией zlib
    > Код библиотеки распространяется под лицензией Zlib

    А какая, кстати, лицензия у библиотеки?

     
     
  • 2.33, Михрютка (ok), 00:31, 02/12/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Solaris Covenant License for MS-DOS with Non-Transphobic MIT clause
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру