LINUX.ORG.RU

SDL 2.0.12

 ,


1

2

11 марта вышла очередная версия SDL 2.0.12.

SDL - кроссплатформенная библиотека разработки для обеспечения низкоуровневого доступа к устройствам ввода, звуковому оборудованию, графическому оборудованию через OpenGL и Direct3D. С применением SDL написаны различные видеопроигрыватели, эмуляторы и компьютерные игры, в том числе предоставляемые в виде свободного ПО.

SDL написан на языке C, работает с C++ и предоставляет биндинги к десятку других языков программирования, в том числе к языку Pascal.

Обозначены следующие улучшения:

  • Добавлены функции уровня увеличения текстуры SDL_GetTextureScaleMode() и SDL_SetTextureScaleMode()
  • Добавлена функция блокировки текстуры SDL_LockTextureToSurface(), в отличие от SDL_LockTexture() представляющую блокированную часть в виде поверхности SDL.
  • Добавлен новый режим смешения SDL_BLENDMODE_MUL, сочетающий модуляцию и смешение
  • Добавлено указание SDL_HINT_DISPLAY_USABLE_BOUNDS для игнорирования результатов SDL_GetDisplayUsableBounds() для индекса дисплея 0.
  • Добавлено окно под пальцем для события SDL_TouchFingerEvent
  • Добавлены функции SDL_GameControllerTypeForIndex(), SDL_GameControllerGetType() для получения типа игрового контроллера
  • Добавлено указание SDL_HINT_GAMECONTROLLERTYPE для игнорирования автоматического определения типа контроллера
  • Добавлены функции SDL_JoystickFromPlayerIndex(), SDL_GameControllerFromPlayerIndex(), SDL_JoystickSetPlayerIndex(), SDL_GameControllerSetPlayerIndex() для определения и установки соответствия номера игрока и устройства
  • Добавлена или улучшена поддержка двух десятков разных игровых контроллеров
  • Исправлена блокировка вызова вибрации игровых контроллеров при использовании драйвера HIDAPI
  • Добавлен макрос обнуления элементов массива SDL_zeroa()
  • Добавлена функция SDL_HasARMSIMD(), возвращающая истину в случае, если процессор поддерживает ARM SIMD (ARMv6+)

Улучшения для Linux:

  • Добавлено указание SDL_HINT_VIDEO_X11_WINDOW_VISUALID для определения вида, выбранного для новых окон X11
  • Добавлено указание SDL_HINT_VIDEO_X11_FORCE_EGL для определения использвания GLX или EGL для X11 по умолчанию

Улучшения для Android:

  • Добавлена фукнкция SDL_GetAndroidSDKVersion(), возвращающая уровень API данного устройства
  • Добавлена поддержка захвата звука с помощью OpenSL-ES
  • Добавлена поддержка Bluetooth Steam Controller в качестве игровых контроллеров
  • Исправлены редкие падения приложения в случае его ухода в фоновый режим или его закрытия

>>> Подробности

★★★

Проверено: Zhbert ()
Ответ на: комментарий от ZenitharChampion

Не думаю, что под Windows используется DirectX

Для 2D ускорения выбирается то что нативно для платформы по умолчанию, на винде директ, на линуксе гл, на маке метал. Но далеко не всегда 2D SDL API используется вообще, а если и используется то глубоко плевать что там под капотом, оно для этого и создано. Тоже самое про окна через winapi они или через X11 тоже самое про ввод и вывод. Но никто не мешает открыть SDL_OPENGL окно и рисовать всё самому также с ускорением без даже намёков на DirectX как большинство и делает по сути

LINUX-ORG-RU ★★★★★
()
Последнее исправление: LINUX-ORG-RU (всего исправлений: 1)
Ответ на: комментарий от LINUX-ORG-RU

Я так и подумал ) SDL предоставляет возможность связаться OpenGL через себя, хотя можно работать с OpenGL напрямую, используя SDL только для отрисовки окна, и для работы с устройствами ввода. Со звуком так же: можно напрямую в /dev/dsp слать звук, но зачем, когда можно через sdl_mixer?

ZenitharChampion ★★★★★
()
Последнее исправление: ZenitharChampion (всего исправлений: 1)
Ответ на: комментарий от LINUX-ORG-RU

Для 2D ускорения выбирается то что нативно для платформы по умолчанию,

Ты тоже не фантазируй. Конкретный бэкэнд выбирает разработчик / мэйнтейнер.

LamerOk ★★★★★
()
Ответ на: комментарий от LamerOk

Ты тоже не фантазируй. Конкретный бэкэнд выбирает разработчик / мэйнтейнер.

Ты бы пальцы гнул поменьше. И читать научился. :D

Я сказал

выбирается то что нативно для платформы по умолчанию

By default the first one in the list that is available on the current platform is chosen.

Первый из это и есть всегда нативный как я выше перечислил. То что ты SDL_HINT_RENDER_DRIVER заюзаешь не значит что получишь желаемое ибо его может не быть вовсе. Да и в целом тебе может быть глубоко плевать на это все если ты не выходишь за рамки SDL Renderer API и делаешь всё через него.

Чё ты агрися на людей я нипанимаю! ^.^

Если же мы выходим за рамки то да согласен, отныне всё на 100% под контролем разработчика.

LINUX-ORG-RU ★★★★★
()
Последнее исправление: LINUX-ORG-RU (всего исправлений: 1)
Ответ на: комментарий от LINUX-ORG-RU

Первый из это и есть всегда нативный как я выше перечислил.

Лол. Единственный «не нативный» рендер в SDL - это софтверный. Всё остальное - это, разумеется, обёртки к.

Но если ты не наркоман, у тебя не будет в сборке никаких других рендеров, кроме одного единственного - того, который нужен.

LamerOk ★★★★★
()
Ответ на: комментарий от LamerOk

Та я про нативный для платформы на которой SDL дёргается. А не для самого SDL ты меня неверно понял. Если мы используем официальную сборку для винды или сборку которую предоставляет дистрибутив линукса или ещё кого.

Но если ты не наркоман, у тебя не будет в сборке никаких других рендеров, кроме одного единственного - того, который нужен.

Ну если я SDL с собой таскаю то да, лишнее выпиливается за ненадобностью. Тут ты прав и я не спорю.

Ой кароче всё, пошёл я спать, одни нервы с вами ^.^

LINUX-ORG-RU ★★★★★
()
Ответ на: комментарий от ZenitharChampion

Ты несёшь какую-то дичь.

что касается sdl_image и sdl_gfx. Мне кажется, что через них можно пользоваться OpenGL и Direct3D, чтобы не обращаться напрямую. Только и всего.

SDL_image это парсер форматов. Ну, чтобы твоя игра умела открывать PNG/BMP/JPEG и так далее, а ты не тратил время на реализацию всего этого. SDL_gfx это графические примитивы.

SDL предоставляет возможность связаться OpenGL через себя

Создать контекст.

хотя можно работать с OpenGL напрямую

Работать с EGL/GLX/WGL/etc и оконной системой операционной системы, если она есть, скорее. Ты и так напрямую с OpenGL работаешь, SDL даёт тебе только абстракцию над созданием окна и контекста.

Хотя должен сказать, что в SDL есть встроенный 2D рендерер, реализованный софтварно, через OpenGL, через Direct3D, через Metal. Вот кстати для него SDL_gfx и существует. Но это всё 2D, повторюсь, и не так интересно. :)

можно напрямую в /dev/dsp слать звук

/dev/dsp больше не существует. По крайней мере на Linux.

зачем, когда можно через sdl_mixer

mixer занимается тем, что… видно из названия. Его задача смиксировать звук с разных каналов, в том числе один с музыкой из MP3/OGG/etc. Чтобы просто играть звук он не нужен.

Некоторые движки кстати самостоятельно микшируют звук. Например, у нас в Xash3D свой микшер, родом из Quake и никакой SDL_mixer ему не нужен. Отдаёт готовый буфер, который можно уже прямиком слать на девайс, будь то /dev/dsp, ALSA, PulseAudio или OpenSL ES.

a1batross ★★★★★
()
Последнее исправление: a1batross (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.