Noticia SDL 3.2: la primera version estable oficial llega con mejoras para Wayland, nuevas APIs y mas

SDL es un conjunto de bibliotecas desarrolladas en el lenguaje de programación C que proporcionan funciones básicas para realizar operaciones multimedia (audio y video), además de carga y gestión de imágenes


Recientemente, se anunció el lanzamiento de SDL 3.2, la cual se presenta como la primera versión estable de la rama SDL 3 y en ella se han introducido importantes mejoras, nuevas funcionalidades, ajustes, APIs, correcciones y más.

Para quienes desconocen de la biblioteca SDL, deben saber que esta, proporciona herramientas como salida de gráficos 2D y 3D acelerada por hardware, procesamiento de entrada, reproducción de audio, salida 3D a través de OpenGL/OpenGL ES y muchas otras operaciones relacionadas.

Principales novedades de SDL 3.2​


En SDL 3.2, se destaca el soporte mejorado para Wayland, que ahora se activa por defecto en sistemas que ofrecen compatibilidad tanto con Wayland como con X11, siempre que admitan las extensiones fifo-v1 y commit-timing-v1. También se prioriza de manera predeterminada el uso del servidor de medios PipeWire, considerado más eficiente que PulseAudio. Adicionalmente, se ha incorporado la capacidad de capturar video desde cámaras web, siempre que PipeWire esté disponible.

Otra novedad es la compatibilidad añadida para tabletas gráficas y bolígrafos digitales, junto con un soporte optimizado para pantallas DPI. Asimismo, se ha implementado la gestión de espacios de color, permitiendo trabajar con múltiples configuraciones y brindando soporte inicial para HDR.

En las mejoras de sonido, en SDL 3.2 el código ha sido completamente rediseñado, incorporando nuevas herramientas para gestionar dispositivos lógicos de audio, facilitando que distintas partes de un programa puedan operar con dispositivos independientes. Además, se han incluido funcionalidades para trabajar con flujos de audio, realizar conversiones, ajustar la frecuencia de muestreo, mezclar sonidos, y gestionar el almacenamiento en búfer, junto con la posibilidad de modificar el tono y el volumen. Por último, se ha automatizado el reconocimiento de dispositivos de sonido conectados o desconectados y la gestión dinámica del dispositivo de sonido predeterminado.

Otra de las adiciones más destacadas es la incorporación de un backend en la API de renderizado 2D, que permite aprovechar la potencia de Vulkan tanto para renderizar como para manipular superficies mediante esta API. Además, se realizó una importante limpieza de características consideradas obsoletas, como el soporte para OpenGL ES 1.0 y DirectFB, junto con la eliminación de compatibilidad con plataformas heredadas como QNX, Pandora, WinRT y OS/2.

SDL 3.2 también introduce la posibilidad de estructurar programas utilizando la devolución de llamada y definiendo el bucle de procesamiento de eventos directamente en la función principal del código. Además, se implementaron cambios en la API que rompen con la compatibilidad anterior, pero que buscan una mayor coherencia al unificar las reglas de nomenclatura en todos los subsistemas.

Dentro de las nuevas herramientas incluidas, destacan varias API diseñadas para cubrir diferentes necesidades. Entre ellas:

  • API de GPU permite acceso multiplataforma a funciones de renderizado 3D, mientras que la API de diálogo facilita la selección, apertura y guardado de archivos y directorios.
  • API del sistema de archivos añade soporte para gestionar directorios y buscar archivos, mientras que la Storage API proporciona una interfaz abstracta para interactuar con diversos sistemas de almacenamiento.
  • API de cámara para acceso a cámaras web
  • API de lápiz para trabajar con tabletas gráficas
  • API de propiedades para gestionar parámetros en formato clave-valor
  • API de procesos que facilita la ejecución y comunicación con procesos secundarios.
  • También se incorporó la API de metadatos para definir información sobre las aplicaciones, como se utiliza en menús de sistemas operativos como macOS.

En cuanto al portapapeles, se amplió su funcionalidad, permitiendo ahora transferir datos en múltiples formatos. Por su parte, las capacidades para gestionar entradas de teclado fueron mejoradas, añadiendo opciones para configurar teclados virtuales en dispositivos iOS y Android. Adicionalmente, se revisó y mejoró la documentación de la API, acompañándola de ejemplos prácticos que pueden ejecutarse directamente desde un navegador.

Por último y no menos importante, cabe destacar también que junto con SDL 3.2, se lanzó la capa de compatibilidad sdl2-compat, diseñada para ofrecer una transición fluida entre SDL 2 y SDL 3. Este componente permite ejecutar programas escritos para SDL 2 aprovechando las funcionalidades de la nueva rama, actuando como un reemplazo completo para la versión anterior.

Interesado en poder conocer más al respecto, puedes consultar los detalles en el siguiente enlace.

Continúar leyendo...