Foi lançada a biblioteca SDL 2.0.22 (Simple DirectMedia Layer), que visa simplificar a escrita de jogos e aplicações multimídia. A biblioteca SDL 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/Vulkan e muitas outras operações relacionadas. A biblioteca é escrita em C e distribuída sob a licença Zlib. Para utilizar os recursos do SDL em projetos em diversas linguagens de programação, são fornecidas as ligações necessárias.
Na nova versão:
- Suporte aprimorado para o protocolo Wayland. Inicialmente, foi planejado passar a usar o protocolo Wayland por padrão em ambientes que oferecem suporte simultâneo para Wayland e X11, mas devido a problemas associados ao Wayland em jogos e drivers NVIDIA, foi decidido adiar a transição (em ambientes Wayland com o componente XWayland, resultado do uso do protocolo X11). Para usar o Wayland, você pode definir a variável de ambiente “SDL_VIDEODRIVER=wayland” antes de iniciar o aplicativo ou adicionar 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 versão 1.18.0.
- Adicionada função SDL_RenderGetWindow() para obter a janela associada ao SDL Renderer.
- Adicionado um conjunto de funções para manipulação de áreas retangulares (determinar a ocorrência de pontos, limpar, comparar, mesclar, etc.), operando com coordenadas e tamanhos baseados em números de ponto flutuante: SDL_FRectEqualsEpsilon () , SDL_HasIntersectionF(), SDL_IntersectFRect(), SDL_UnionFRect(), SDL_EncloseFPoints() e SDL_IntersectFRectAndLine().
- Adicionada função SDL_IsTextInputShown() para verificar se a área de entrada de texto é mostrada.
- Adicionada 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 ativar este evento.
- Adicionado o sinalizador SDL_HINT_MOUSE_RELATIVE_MODE_CENTER para permitir a restrição do mouse apenas ao centro da janela em vez de à janela inteira quando o modo relativo estiver habilitado.
- Habilitada a captura automática do mouse ao pressionar os botões do mouse. Para desativá-lo, é proposto o sinalizador SDL_HINT_MOUSE_AUTO_CAPTURE.
- Adicionados sinalizadores SDL_HINT_VIDEO_FOREIGN_WINDOW_OPENGL e SDL_HINT_VIDEO_FOREIGN_WINDOW_VULKAN para transmitir informações sobre o uso de OpenGL ou Vulkan em uma janela externa.
- Adicionado o sinalizador SDL_HINT_QUIT_ON_LAST_WINDOW_CLOSE para permitir a entrega do evento SDL_QUIT quando a última janela do aplicativo for fechada.
- Adicionado o sinalizador SDL_HINT_JOYSTICK_ROG_CHAKRAM para tratar o mouse ROG Chakram como um joystick.
- Para Linux, o atributo SDL_HINT_X11_WINDOW_TYPE foi adicionado para definir o parâmetro _NET_WM_WINDOW_TYPE para Windows.
- Para Linux, o sinalizador SDL_HINT_VIDEO_WAYLAND_PREFER_LIBDECOR foi adicionado para usar libdecor com servidores compostos que suportam xdg-decoration.
- Para Android, a função SDL_AndroidSendMessage() foi implementada para enviar um comando arbitrário ao manipulador SDL Java.
Fonte: opennet.ru