Apresentado o lançamento da biblioteca SDL 3.2.0 (Simple DirectMedia Layer), que é marcada como a primeira versão estável oficial da linha SDL 3. A biblioteca visa simplificar a escrita de jogos e aplicativos multimídia, oferecendo recursos como saída em 2D e 3D acelerada por hardware, processamento de entrada, reprodução de áudio e saída 3D através de OpenGL, OpenGL ES, Metal, Direct3D ou Vulkan. O código é escrito em C e distribuído sob a licença Zlib. Estão disponíveis ligações para uso do SDL em projetos em várias linguagens de programação.
Principais novidades:
- O suporte ao protocolo Wayland foi significativamente melhorado, agora ativado por padrão em ambientes que oferecem suporte simultâneo ao Wayland e X11, e que suportam as extensões de protocolo fifo-v1 e commit-timing-v1.
- O suporte a multimídia está ativado por padrão. servidor PipeWire, que é considerado mais prioritário do que o PulseAudio.
- Adicionada a capacidade de captura de vídeo com webcams (quando o PipeWire está disponível).
- Adicionada a possibilidade de usar tablets gráficos e canetas digitais.
- Suporte significativamente melhorado para telas de alta densidade de pixels (High DPI).
- Adicionada a possibilidade de gerenciar espaços de cores e suporte para múltiplos espaços de cores. Implementado suporte inicial para HDR.
- O código para manipulação de áudio foi completamente reescrito. Adicionado suporte a dispositivos de áudio lógicos (diferentes partes do programa podem operar com seu próprio dispositivo de áudio separado). Foram adicionadas ferramentas para gerenciar fluxos de áudio, conversão de fluxos, alteração da taxa de amostragem, mixagem, controle de buffer, ajuste de tom e volume. Implementada a manipulação automática de conexão ou desconexão de dispositivos de áudio, bem como a mudança do dispositivo de áudio padrão.
- No API de renderização 2D, adicionado um backend para renderização através do API Vulkan. Adicionadas funções para trabalhar com superfícies através do API Vulkan.
- Uma grande limpeza de recursos obsoletos, que se tornaram irrelevantes nas realidades atuais, foi realizada. Por exemplo, o suporte ao OpenGL ES 1.0 e DirectFB foi descontinuado, e o código para operação em plataformas obsoletas, como QNX, Pandora, WinRT e OS/2 foi removido.
- Possibilidade de organizar o funcionamento do programa usando chamadas de retorno e definir o ciclo de processamento de eventos na função main().
- A API sofreu alterações que quebram a compatibilidade. As regras de nomenclatura da API foram unificadas — as chamadas em diferentes subsistemas agora são nomeadas usando um único esquema comum.
- Novas APIs adicionadas:
- API GPU — acesso multiplataforma a GPU e capacidades de renderização 3D.
- API Dialog — uso de diálogos para seleção/abertura/salvamento de arquivos e diretórios.
- API Filesystem — operações com o sistema de arquivos, gerenciamento de diretórios e busca de arquivos.
- API Storage — interface de programação abstrata para acesso a diferentes sistemas de armazenamento.
- API Camera — acesso a webcams.
- API Pen — interação com tablets gráficos e canetas digitais, como Wacom e Apple Pencil.
-
Fonte: opennet.ru
