Allegro (biblioteca)
Este artigo não cita fontes confiáveis. (Outubro de 2024) |
Allegro é uma biblioteca livre de código fonte aberto para o desenvolvimento de Video games.
![]() | |||||
Desenvolvedor | Colaboradores do projeto Allegro | ||||
Plataforma | x86, x64, ARM (Android) | ||||
Lançamento | 1990 (34–35 anos) | ||||
Versão estável | 5.2.9.1 (20 de janeiro de 2024 | )||||
Idioma(s) | Inglês | ||||
Escrito em | C | ||||
Sistema operacional | Multiplataforma | ||||
Gênero(s) | Bilioteca Gráfica | ||||
Licença | Allegro 4 Allegro 5 Licença zlib | ||||
Estado do desenvolvimento | Ativo | ||||
Página oficial | liballeg | ||||
Repositório | allegro5 no GitHub | ||||
Cronologia | |||||
---|---|---|---|---|---|
|
O objetivo principal é a portabilidade entre as plataformas em que é feito uso da biblioteca. O mesmo código-fonte deve compilar e rodar em todas as plataformas suportadas. Um objetivo de curto prazo é a plataforma 64-bits.
O seu principal uso é no escopo da programação de jogos. Atualmente ela possui uma grande comunidade, pois além de possuir diversos recursos nativamente (gráficos 2D e 3D com OpenGL, entrada de dados pelo teclado e mouse, RLE-Sprites, exibição de vídeos e controle de som) a API é bastante extensível fazendo que com existam diversos addons disponíveis.
A interface pública de acesso da biblioteca é escrita em C, porém há algumas versões (não-oficiais) para outras linguagem de programação. Internamente seu código fonte é escrito em uma mistura de C, Assembly (drivers i386), C++ e Objective-C.
Historicamente, um ponto forte do Allegro era sua performance. Uma parcela de seu código fonte era escrita de forma otimizada em Assembly para situações em que tempo de processamento é fundamental. Quando seu código fonte deixou de ser escrito exclusivamente para DOS alguns desses processamentos críticos passaram a ser feitos pelo sistema operacional, como por exemplo, com o uso interno da biblioteca DirectX no Windows.
História
editarFoi originalmente compilada por Shawn Hargreaves para a plataforma Atari ST, mas com o desaparecimento desta plataforma, Allegro fez uma breve passagem pelo Borland C até ser adotada pelo DJGPP onde alcançou sua maturidade, em uma mistura de Código C com Assembly.
Há muito tempo que deixou de ser uma pequena biblioteca modo 13 e hoje utiliza recursos modernos como DirectX ou um Servidor X. Uma grande quantidade de pacotes adicionais pode ser encontrada na própria página da biblioteca. Por apresentar uma sintaxe simples e encapsular diversas rotinas complexas em comandos facilmente decoráveis, tornou-se uma API ideal para iniciantes e para projetos que disponham de pouco tempo para sua finalização.
Em música a palavra italiana "allegro" significa "rápido, vivo, brilhante". Também pode ser um acrônimo recursivo para "Allegro Low LEvel Game ROutines".
Plataformas suportadas
editarEspecificações
editar- Suporte em código para as plataformas DOS, Windows, Unix, BeOS, QNX, e Mac OS.
- Funções de desenho incluindo putpixel(plotar pixel), getpixel(ler pixel), linhas, retângulos, texturas simples, preenchimento gouraud(forma de preencher suavemente entre um tom e outro de cor), curvas, preenchimento baseado em padrões, mascaramento, sprites compilados, mudança de escala em imagens e rotação, transparência e luz, texto com suporte a fontes, remoção de bordas e imagens que não aparecem na tela para ganho de desempenho, e pode desenhar diretamente para memória de vídeo ou imagens em memória independente do tamanho.
- Drive gráfico para DOS com suporte a VGA(mode 13h) mode-x, e modos SVGA com modos com profundidade de cor de 8, 15, 16, 24, e 32 bits, utilização de todas vantagens do VBE 2.0 mascaramento para mapeamento linear e acesso a aceleração de Hardware se disponível. Suporte para outras funcionalidades de vídeo disponível por meio do projeto FreeBE/AF;
- Drive gráfico para windows usando directX em modo tela cheia e para modos janela diversas rotinas para desenho direto nos contextos de renderização da GDI.
- Drive gráfico para Unix para X, DGA, fbcon, SVGALib, VBE/AF, modo-X, e o modo vga padrão.
- Drive gráfico para BeOS utilizando BWindowScreen em modo tela cheia e BDirectWindow em modo janela.
- Movimento da tela em hardware e triple buffering(utilização de 3 paginas de memória para melhorar a animação), e manipulação de paleta de cores. Player integrado de vídeos FLI/FLC.
- Suporte para musica MIDI com mais de 64 efeitos simultâneos, possibilidade de gravação de arquivos wav e entrada de MIDI. Suporte simplificado para acesso de teclado, mouse, joystick, e temporizadores de alta fidelidade, incluindo retrância vertical simulada para a versão DOS.
- Rotinas para leitura de arquivos comprimidos com LZSS. Suporte para arquivos de dados com múltiplos objetos.
- Funções matemáticas incluindo aritmética de ponto fixo, tabelas trigonométricas pré-compiladas, e manipulação de vetores/matrizes 3D. Diversas rotinas para operação com GUI gerenciado pela allegro.
- Suporte interno para caracteres 16 e UTF-8 bits.
Allegro 5
editarO desenvolvimento atual é focado na quinta versão do Allegro, com a versão atual 5.0.10 estável, e melhorias do tipo açúcar sintático sendo adicionadas a partir da versão 5.2.1. O allegro 5 é uma biblioteca completamente reescrita. Foi feito um esforço para tornar a API mais consistente e segura, por padrão, a biblioteca agora será acelerada por hardware usando OpenGL ou DirectX backends de renderização, se necessário. Muitos dos addons que já existiam como projetos separados para o Allegro 4 serão reescritos para interagir mais facilmente com Allegro e será incluído na instalação padrão. Allegro é orientado a eventos
Jogos desenvolvidos com allegro
editarVer também
editarLigações externas
editar- «Sítio oficial» (em inglês)
- allegro5 no GitHub