O lançamento da nova versão do SDL 2.0.22, versão na qual foram feitas várias melhorias de compatibilidade com Wayland, além de várias melhorias e muito mais.
Para quem não está familiarizado com a biblioteca SDL, 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 via OpenGL / OpenGL ES e muitas outras operações relacionadas.
SDL é análogo ao DirectX, ao qual se poderia argumentar que o análogo do DirectX é o OpenGL. DirectX também funciona com dispositivos de entrada e som. Quando a Loki Software começou a portar jogos AAA no Linux, eles substituíram o Direct3D pelo OpenGL e não houve substituto para mais nada e como é difícil escrever aplicativos "X" hoje em dia mesmo com WinAPI na API X11, mas com DirectDraw no WinAPI que já é um problema, é como o SDL nasceu.
Principais novos recursos do SDL 2.0.22
Nesta nova versão que se apresenta, o Melhorias na compatibilidade do protocolo Wayland, então inicialmente foi planejado mudar para o uso do protocolo Wayland por padrãoda em ambientes que fornecem suporte simultâneo para Wayland e X11, mas por problemas relacionado ao Wayland em jogos e drivers da NVIDIA, foi decidido adiar a transição (Em ambientes Wayland com o componente XWayland, a saída ainda é usada usando o protocolo X11.)
Para usar o Wayland, variável de ambiente deve ser definida "SDL_VIDEODRIVER=wayland" antes de iniciar o aplicativo ou adicione a função 'SDL_SetHint(SDL_HINT_VIDEODRIVER, "wayland,x11")' ao código antes de chamar SDL_Init(). Compilar com Wayland requer pelo menos libwayland-client 1.18.0.
Outra mudança que se destaca é que adicionou um conjunto de funções para manipular áreas retangulares (determinar a ocorrência de pontos, excluir, comparar, mesclar, etc.), operando com coordenadas e tamanhos baseados em números de ponto flutuante.
Para Linux, adicionado o sinalizador SDL_HINT_X11_WINDOW_TYPE para definir o parâmetro _NET_WM_WINDOW_TYPE no Windows e também adicionou o sinalizador SDL_HINT_VIDEO_WAYLAND_PREFER_LIBDECOR para Linux usar libdecor com servidores compostos que suportam xdg-decoration.
Para Android, a função SDL_AndroidSendMessage() é implementada para enviar um comando arbitrário para o controlador Java SDL.
Das outras mudanças que se destacam:
- Adicionado o sinalizador SDL_HINT_QUIT_ON_LAST_WINDOW_CLOSE para habilitar a entrega do evento SDL_QUIT quando a última janela do aplicativo for fechada.
- Adicionado o traço SDL_HINT_JOYSTICK_ROG_CHAKRAM para lidar com o mouse ROG Chakram como um joystick.
Adicionada a função SDL_RenderGetWindow() para obter a janela associada ao SDL Renderer. - Adicionada a função SDL_IsTextInputShown() para verificar se a área de entrada de texto é mostrada.
- Adicionada a função SDL_ClearComposition() para limpar a área de entrada de texto sem desabilitar o método de entrada (IME).
- Adicionado evento SDL_TEXTEDITING_EXT para lidar com áreas de entrada de texto longo e sinalizador SDL_HINT_IME_SUPPORT_EXTENDED_TEXT para habilitar este evento.
- Adicionado o sinalizador SDL_HINT_MOUSE_RELATIVE_MODE_CENTER para habilitar a restrição do mouse apenas ao centro da janela em vez de toda a janela quando o modo relativo estiver habilitado.
- Captura automática do mouse ativada ao clicar nos botões do mouse. O atributo SDL_HINT_MOUSE_AUTO_CAPTURE é proposto para ser desabilitado.
Finalmente se você estiver interessado em saber mais sobre isso desta nova versão, você pode verificar o detalhes no link a seguir.
Como instalar o Simple DirectMedia Layer no Linux?
A instalação desta biblioteca no Linux é bastante simples, pois a maioria das distribuições Linux a possui em seus repositórios.
Para o caso de 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 para o caso daqueles que são vocêsSuarios do Arch Linux, só precisamos executar o seguinte:
sudo pacman -S sdl2
No caso de quem é usuário de Fedora, Centos, RHEL ou qualquer distribuição baseada neles, eles só precisam executar o seguinte comando:
sudo yum install SDL2 sudo yum install SDL2-devel
Para todas as outras distribuições Linux, eles podem procurar o pacote "sdl" ou "libsdl" para instalação ou baixar e compilar o código-fonte.
Eles fazem isso com:
git clone https://hg.libsdl.org/SDL SDL cd SDL mkdir build cd build ./configure make sudo make install