Релиз мультимедийной библиотеки SDL 3.4.0

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

SDL 3.4.0 является второй значительной стабильной веткой в серии SDL 3.x — первой стабильной веткой была объявлена серия 3.2.x, а ветка 3.3.x позиционировалась как экспериментальная. Главные изменения в SDL 3.4.0 связаны с улучшением переносимости между API 3D GPU и API для двумерной отрисовки, расширением поддержки сборки в WebAssambly при помощи компилятора Emscripten, улучшению работы с графическими планшетами и цифровыми перьями, появлению встроенной поддержки формата изображений PNG.

Среди новых возможностей в SDL 3.4.0:

  • Добавлена встроенная поддержка изображений в формате PNG, для работы с которыми предложены функции SDL_LoadPNG (), SDL_LoadPNG_IO (), SDL_SavePNG () и SDL_SavePNG_IO (). Для определения формата (PNG или BMP) и загрузки изображений в качестве поверхностей добавлены функции SDL_LoadSurface () и SDL_LoadSurface_IO ().
  • Добавлена функция SDL_RotateSurface () для создания повёрнутой копии поверхности.

  • Добавлена функция SDL_CreateAnimatedCursor () для создания цветных анимированных курсоров, а также признак SDL_HINT_MOUSE_DPI_SCALE_CURSORS для автоматического масштабирования курсоров в привязке к уровню масштабирования экрана.
  • Добавлены функции SDL_SetWindowProgressState (), SDL_SetWindowProgressValue (), SDL_GetWindowProgressState () и SDL_GetWindowProgressValue () для показа прогресса операции в пиктограмме приложения в панели задач.

  • Добавлены свойства для использования GPU API со старым оборудованием.
  • Добавлено свойство SDL_PROP_GPU_DEVICE_CREATE_VULKAN_OPTIONS_POINTER и SDL_PROP_GPU_DEVICE_CREATE_VULKAN_REQUIRE_HARDWARE_ACCELERATION_BOOLEA для настройки и задействования возможностей API Vulkan при создании устройств GPU.

  • Добавлена функция SDL_GetGPUDeviceProperties () для запроса информации об GPU.

  • Добавлены функции SDL_CreateGPURenderer () и SDL_GetGPURendererDevice () для задействования GPU при 2D-отрисовке, а также SDL_SetGPURenderStateFragmentUniforms (), SDL_SetGPURenderState () и SDL_DestroyGPURenderState () для задействования фрагментных шейдеров при 2D-отрисовке.

  • При 2D-отрисовке при помощи GPU реализована поддержка YUV-текстур и HDR. Добавлена поддержка текстур с палитрами, для работы с которыми добавлены функции SDL_GetTexturePalette () и SDL_SetTexturePalette (). Добавлены функции SDL_GetPixelFormatFromGPUTextureFormat () и SDL_GetGPUTextureFormatFromPixelFormat () для преобразования форматов текстур, а также параметры SDL_PROP_TEXTURE_CREATE_GPU_TEXTURE_POINTER и SDL_PROP_TEXTURE_GPU_TEXTURE_POINTER для создания 2D-текстур из GPU-текстур. Для настройки текстур добавлены функции SDL_RenderTexture9GridTiled (), SDL_GetDefaultTextureScaleMode (), SDL_SetDefaultTextureScaleMode (), SDL_GetRenderTextureAddressMode (), SDL_SetRenderTextureAddressMode ().

  • Добавлен параметр SDL_SCALEMODE_PIXELART для использования оптимизированного для пиксельной графики алгоритма масштабирования.

  • Реализованы события SDL_EVENT_DISPLAY_USABLE_BOUNDS_CHANGED, SDL_EVENT_SCREEN_KEYBOARD_SHOWN, SDL_EVENT_SCREEN_KEYBOARD_HIDDEN, SDL_EVENT_PINCH_BEGIN, SDL_EVENT_PINCH_UPDATE, SDL_EVENT_PINCH_END и SDL_EVENT_AUDIO_DEVICE_ADDED, срабатывающие при изменении границ, появлении/скрытии экранной клавиатуры, экранных жестах и добавлении звукового устройства.

  • Добавлены функции SDL_PutAudioStreamDataNoCopy () и SDL_PutAudioStreamPlanarData () для более эффективной обработки звуковых потоков.

  • Добавлена поддержка игровых контроллеров Nintendo Switch 2, подключённых через USB. Расширена поддержка контроллеров 8BitDo, FlyDigi и Hand Held Legend SInput.

  • Для улучшения работы WebAssambly-приложений, собираемых при помощи компилятора Emscripten, добавлена функция SDL_SetWindowFillDocument () и реализованы параметры SDL_WINDOW_FILL_DOCUMENT, SDL_PROP_WINDOW_CREATE_EMSCRIPTEN_CANVAS_ID_STRING и SDL_PROP_WINDOW_CREATE_EMSCRIPTEN_KEYBOARD_ELEMENT_STRING.

  • На платформе Linux реализована поддержка атомарных операций при использовании KMSDRM, активируемых при помощи свойства SDL_HINT_KMSDRM_ATOMIC. Добавлен параметр SDL_PROP_DISPLAY_WAYLAND_WL_OUTPUT_POINTER для запроса устройства вывода wl_output, ассоциированного с экраном, в окружениях на базе Wayland.



Источник: http://www.opennet.ru/opennews/art.shtml? num=64537

OpenNet прочитано 306 раз