E foi lançada a SDL 2.0.16 com melhorias para Wayland, Pipewire e muito mais. Confira as novidades dessa importante atualização.
SDL, ou Simple DirectMedia Layer, é uma biblioteca multimídia multiplataforma, livre e de código aberto, escrita em C e que representa uma interface simples para gráficos, som, e dispositivos de entrada de várias plataformas.
Esta biblioteca é amplamente usada por jogos multiplataforma, inclusive como parte do tempo de execução do Steam.
A palavra “layer” (camada) que está no nome da biblioteca existe para lembrar que ela na verdade pe um wrapper de várias funções específicas do sistema operacional.
Ou seja, o propósito principal do SDL é fornecer um framework comum para acessar essas funções. E para ir além desse objetivo, várias bibliotecas foram criadas para funcionar em conjunto com SDL.
Há alguns dias foi anunciado o lançamento da nova versão da biblioteca SDL 2.0.16 (Simple DirectMedia Layer), que visa simplificar a escrita de jogos e aplicativos multimídia.
Novidades do SDL 2.0.16
Nesta nova versão, várias alterações foram adicionadas, entre as quais se destacam as melhorias no suporte para o Wayland, bem como a capacidade de gerar e capturar áudio usando o servidor multimídia Pipewire e outros.
No SDL 2.0.16 uma das novidades que se destaca é que o suporte para o Wayland foi bastante aprimorado, além da adição da capacidade de gerar e capturar áudio utilizando o servidor multimídia Pipewire e AAudio (Android) e também suporte para controladores de jogos Amazon Luna e Xbox Series X.
Outra mudança que podemos encontrar no SDL 2.0.16 é que foi adicionado suporte para o efeito de vibração adaptável (ruído) nos controladores Google Stadia e Nintendo Switch Pro ao usar o controlador HIDAPI.
Além disso, no SDL 2.0.16 a carga da CPU foi reduzida ao processar as chamadas SDL_WaitEvent() e SDL_WaitEventTimeout() e uma definição de extensões SIMD compatíveis com a plataforma Elbrus também foi adicionada.
Para a parte dos novos recursos que foram propostos nesta nova versão, são mencionados os seguintes:
- SDL_FlashWindow() – Permite que você prenda a atenção do usuário.
- SDL_GetAudioDeviceSpec(): é para obter informações sobre o formato de áudio preferido para o dispositivo especificado.
- SDL_SetWindowAlwaysOnTop(): visa alterar dinamicamente o sinalizador SDL_WINDOW_ALWAYS_ON_TOP (âncora em outro conteúdo) para a janela selecionada.
- SDL_SetWindowKeyboardGrab(): para capturar a entrada do teclado independentemente do mouse.
- SDL_SoftStretchLinear(): para escalonamento bilinear entre superfícies de 32 bits.
- SDL_UpdateNVTexture(): para atualizar as texturas no NV12/21.
- SDL_GameControllerSendEffect() e SDL_JoystickSendEffect(): para enviar efeitos personalizados para controladores de jogo DualSense.
- SDL_GameControllerGetSensorDataRate(): para obter dados sobre a intensidade da informação recebida dos sensores dos controladores de jogos PlayStation e Nintendo Switch.
- SDL_AndroidShowToast(): permite mostrar notificações leves na plataforma Android.
Para saber mais sobre o SDL 2.0.16, acesse a nota de lançamento.
Como instalar ou atualizar o SDL
A instalação desta biblioteca no Linux é bastante simples, pois a maioria das distribuições Linux a possui em seus repositórios.
No caso do Debian, Ubuntu e distribuições derivadas destes, você só terá que executar os seguintes comandos em um terminal:
sudo apt-get install libsdl2-2.0
sudo apt-get install libsdl2-dev
Enquanto, no caso daqueles que são usuários do Arch Linux, só temos que executar o seguinte:
sudo pacman -S sdl2
Para os usuários de Fedora, Centos, RHEL ou qualquer distribuição baseada nestes, basta executar o seguinte comando:
sudo yum install SDL2
sudo yum install SDL2-devel
Para instalar em todas as outras distribuições do Linux, você pode pesquisar o pacote “sdl” ou “libsdl” para instalar ou baixar e compilar o código-fonte (é necessário ter o Git e os aplicativos necessário à compilação instalados no sistema).
Eles fazem isso com:
git clone https://hg.libsdl.org/SDL SDL
cd SDL
mkdir build
cd build
./configure
make
sudo make install