Пуснато е издание на библиотеката SDL 2.0.18 (Simple DirectMedia Layer), която цели да опрости създаването на игри и мултимедийни приложения. Библиотеката SDL предоставя инструменти като хардуерно ускорен рендеринг на 2D и 3D графики, обработка на вход, възпроизвеждане на звук, рендериране на 3D чрез OpenGL/OpenGL ES/Vulkan и множество други свързани операции. Библиотеката е написана на C и се разпространява под лиценз 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() за проверка на поддръжката на адаптивна вибрация от игровия контролер и джойстика.
- 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 г. и преди две седмици получи положителен отговор.
Източник: opennet.ru
