
Recentemente, o lançamento do SDL 3.2 foi anunciado, que se apresenta como a primeira versão estável do branch SDL 3 e introduziu importantes melhorias, novas funcionalidades, ajustes, APIs, correções e muito mais.
Para quem não conhece a biblioteca SDL, você deve saber que ela fornece ferramentas como saída gráfica 2D e 3D acelerada por hardware, processamento de entrada, reprodução de áudio, saída 3D através de OpenGL/OpenGL ES e muitas outras operações relacionadas.
Principais novos recursos do SDL 3.2
No SDL 3.2, é destacado Suporte aprimorado para Wayland, isso agora Está ativado por padrão em sistemas que oferecem compatibilidade com Wayland e X11, contanto que suportem as extensões fifo-v1 e commit-timing-v1. O uso do servidor de mídia PipeWire, considerado mais eficiente que o PulseAudio, também é priorizado por padrão. Além disso, foi adicionada a capacidade de capturar vídeo de webcams, desde que o PipeWire esteja disponível.
Outra novidade é o Adicionado suporte para tablets gráficos e canetas digitais, junto com suporte otimizado para exibições DPI. Da mesma forma, foi implementado o gerenciamento do espaço de cores, permitindo trabalhar com múltiplas configurações e fornecendo suporte inicial para HDR.
Em melhorias sonoras, No SDL 3.2 o código foi completamente redesenhado, incorporando novas ferramentas para gerenciar dispositivos lógicos de áudio, tornando mais fácil para diferentes partes de um programa operar com dispositivos independentes. Além disso, foi incluída funcionalidade para trabalhar com fluxos de áudio, realizar conversões, ajustar a taxa de amostragem, mixar sons e gerenciar buffer, juntamente com a capacidade de modificar o tom e o volume. Por fim, o reconhecimento de dispositivos de som conectados ou desconectados e o gerenciamento dinâmico do dispositivo de som padrão foram automatizados.
Outra das adições mais notáveis é a incorporação de um backend na API de renderização 2D, que permite aproveitar o poder do Vulkan para renderização e manipulação de superfícies usando esta API. Além disso, houve uma grande limpeza de recursos considerados obsoletos, como suporte para OpenGL ES 1.0 e DirectFB, juntamente com a remoção do suporte para plataformas legadas como QNX, Pandora, WinRT e OS/2.
SDL 3.2 também introduz o possibilidade de estruturar programas utilizando o callback e definir o loop de processamento de eventos diretamente na função principal do código. Além disso, se implementou mudanças no API que rompem com a compatibilidade anterior, mas que buscam maior coerência unificando as regras de nomenclatura em todos os subsistemas.
Dentro novas ferramentas incluídas, destacam diversas APIs projetadas para cobrir diferentes necessidades. Entre elas:
- A API GPU permite acesso multiplataforma a funções de renderização 3D, enquanto a API Dialog facilita a seleção, abertura e salvamento de arquivos e diretórios.
- A API File System adiciona suporte para gerenciamento de diretórios e busca de arquivos, enquanto a API Storage fornece uma interface abstrata para interagir com vários sistemas de armazenamento.
- API de câmera para acesso à webcam
- Pen API para trabalhar com tablets gráficos
- API de propriedades para gerenciar parâmetros em formato de valor-chave
- API de processos que facilita a execução e comunicação com processos secundários.
- A API de metadados também foi adicionada para definir informações sobre aplicativos, usadas em menus de sistemas operacionais como o macOS.
Quanto à área de transferência, sua funcionalidade foi ampliada, agora permitindo que os dados sejam transferidos em vários formatos. Por sua vez, foram melhoradas as capacidades de gestão de entradas do teclado, acrescentando opções de configuração de teclados virtuais em dispositivos iOS e Android. Além disso, a documentação da API foi revisada e aprimorada, acompanhada de exemplos práticos que podem ser executados diretamente no navegador.
Por último, mas não menos importante, importa também referir que Junto com o SDL 3.2 a camada de compatibilidade sdl2-compat foi lançada projetado para fornecer uma transição perfeita entre SDL 2 e SDL 3. Este componente permite executar programas escritos para SDL 2 aproveitando as funcionalidades da nova branch, atuando como um substituto completo da versão anterior.
Interessado em saber mais sobre o assunto, você pode consultar os detalhes no link a seguir.