Se ha lanzado la versión de la biblioteca SDL 3.2.0 (Simple DirectMedia Layer), que se marca como el primer lanzamiento estable oficial de la rama SDL 3. La biblioteca está diseñada para facilitar la escritura de juegos y aplicaciones multimedia, y proporciona capacidades como la salida gráfica 2D y 3D acelerada por hardware, procesamiento de entrada, reproducción de sonido y salida 3D a través de OpenGL, OpenGL ES, Metal, Direct3D o Vulkan. El código está escrito en C y se distribuye bajo la licencia Zlib. Se proporcionan enlaces para usar SDL en proyectos en varios lenguajes de programación.
Novedades principales:
- Se ha mejorado significativamente el soporte para el protocolo Wayland, que ahora está activado por defecto en entornos que ofrecen soporte simultáneo para Wayland y X11, y que admiten las extensiones del protocolo fifo-v1 y commit-timing-v1.
- Se ha habilitado por defecto el soporte multimedia. servidor PipeWire, que se marca como más prioritario que PulseAudio.
- Se ha añadido soporte para la captura de vídeo desde cámaras web (con PipeWire disponible).
- Se ha añadido la posibilidad de utilizar tabletas gráficas y lápices digitales.
- Se ha mejorado significativamente el soporte para pantallas de alta densidad de píxeles (High DPI).
- Se ha añadido soporte para espacios de color y la posibilidad de gestionar múltiples espacios de color. Se ha implementado el soporte inicial para HDR.
- El código para el manejo de audio ha sido completamente reescrito. Se ha añadido soporte para dispositivos de audio lógicos (diferentes partes del programa pueden trabajar con su propio dispositivo de audio separado). Se han añadido herramientas para trabajar con flujos de audio, conversión de flujos, cambio de la frecuencia de muestreo, mezcla, gestión de almacenamiento en búfer, cambio de tono y volumen. Se ha implementado el manejo automático de la conexión o desconexión de dispositivos de audio, así como el cambio del dispositivo de audio predeterminado.
- Se ha añadido un backend en la API de renderizado 2D para el renderizado a través de la API Vulkan. Se han añadido funciones para trabajar con superficies a través de la API Vulkan.
- Se ha llevado a cabo una limpieza importante de características obsoletas que han perdido relevancia en las realidades modernas. Por ejemplo, se ha dejado de soportar OpenGL ES 1.0 y DirectFB, y se ha eliminado el código para operar en plataformas obsoletas como QNX, Pandora, WinRT y OS/2.
- Se ha proporcionado la posibilidad de organizar el funcionamiento del programa utilizando llamadas de retorno y definir el ciclo de procesamiento de eventos en la función main().
- Se han realizado cambios en la API que afectan la compatibilidad. Se han unificado las reglas de nomenclatura de la API: las llamadas en diferentes subsistemas ahora se nombran utilizando un esquema común.
- Nuevas API añadidas:
- GPU API: acceso multiplataforma a GPU y capacidades de renderizado 3D.
- Dialog API: uso de diálogos para seleccionar/abrir/guardar archivos y directorios.
- Filesystem API: operaciones con el sistema de archivos, gestión de directorios y búsqueda de archivos.
- Storage API: interfaz de programación abstracta para acceder a diferentes sistemas de almacenamiento de datos.
- Camera API: acceso a cámaras web.
- Pen API: interacción con tabletas gráficas y lápices digitales, como Wacom y Apple Pencil.
-
Fuente: opennet.ru
