Apresento a vossa atenção a primeira versão da biblioteca multimídia que desenvolvi. Pequena camada DirectMedia, abreviado como LDL.
A biblioteca é escrita no padrão C++ 98, o que permite que ela seja compilada a partir do Visual C++ 6.0. O código é distribuído sob os termos da Boost Software License 1.0. Mas a biblioteca não limita os programadores na escolha do padrão de linguagem C++; um programador pode usar qualquer padrão de linguagem moderno. Eu aderi à filosofia de downgrade - é o uso de dispositivos e softwares antigos na vida cotidiana, quando as empresas não oferecem suporte a seus próprios sistemas operacionais ou dispositivos “desatualizados”, aumentando os requisitos de sistema a cada nova versão de seu produto, ou parando de oferecer suporte ao dispositivo. Bilhões de dispositivos em todo o mundo processam bilhões de instruções de código não otimizadas a cada segundo.
Este ano fiz uma apresentação na conferência C++ 2023 "Avançando para o passado, ou desenvolvendo uma estrutura para Windows 95 em 2023".
Com meu projeto quero provar que hardware antigo ainda pode ser útil e que é muito cedo para descartá-lo como sucata. Há algo de encantador em tecnologias, abordagens e hardware antigos, e também um desafio para novas bibliotecas e programas.
Logo no início do processo de desenvolvimento, eu não tinha ideia de que essa biblioteca fosse possível. Mas durante a implementação prática do protótipo, acrescentando linha por linha à base da futura biblioteca, fiquei convencido da possibilidade de sua criação e aplicação prática.
Resumindo o que foi dito acima, é possível escrever programas rápidos, bastando usar o conhecimento dos antigos.
Recursos da biblioteca:
- apoiar Linux Debian 3 e superior (montagem nativa fornecida);
- apoiar Windows 95 - Windows 11;
- API simples para trabalhar com gráficos 2D;
- carregamento de diversos formatos gráficos (bmp, png, tga, jpg);
- API multiplataforma em eventos de Windows e sistema operacional;
- OpenGL 1.2 é usado para aceleração gráfica de hardware e
- OpenGL 3.3, há suporte para processamento gráfico apenas na CPU, caso não haja aceleração de hardware;
- o renderizador pode ser selecionado dinamicamente ao carregar o aplicativo;
- uma única API para todos os sistemas - escreva uma vez e compile em qualquer lugar!
- reprodução de som;
- vinculação dinâmica e estática.
Planos futuros:
- streaming de reprodução de áudio;
- saída de texto com suporte à biblioteca freetype;
- renderizações adicionais Direct3D 9, 10, 11;
- API para trabalhar com streams;
- suporte API integrado para trabalhar com a rede;
- Adaptando a estrutura para outras plataformas: Android, IOS, MacOs.
Links:
- Repositório do projeto com descrição da montagem
- Programas de exemplo
- Apresentação do relatório
- Discussão anterior sobre otorrinolaringologia
Fonte: linux.org.ru
