Allegro (biblioteca)
Origem: Wikipédia, a enciclopédia livre.
Se tem algum conhecimento sobre este assunto, por favor verifique a consistência e o rigor deste artigo.
O objetivo principal da biblioteca Allegro é a independência de plataforma de operação. O mesmo código-fonte, sem tirar nem pôr um único caractere que seja, deve compilar e rodar em todas as plataformas suportadas. Um objetivo de curto prazo é a plataforma 64-bits.
O Allegro é uma biblioteca criada para uso em programação de jogos. É atualmente usada por muitas pessoas , ou para alguém que não queira funcionalidades adicionais, isso é ruim. Por enquanto, o Allegro vem com muitos recursos, mas há vários complementos para a inclusão de funcionalidades adicionais.
A interface pública do Allegro é em C, mas há alguns extensores (não-oficiais) para outras linguagens. Internamente, é escrito em uma mistura de C, Assembler (drivers i386), C++ e Objective C.
Historicamente, um ponto forte do Allegro era sua performance – incluindo códigos otimizados em Assembler para situações em que tempo de processamento é fundamental. Desde que o Allegro deixou de ser apenas para DOS, alguns desses processamentos críticos passaram a ser feitos pelo Sistema Operacional, por exemplo, a aceleração de hardware por DirectX.
Foi originalmente compilada por Shawn Hargreaves para Atari ST, mas como essa plataforma desapareceu a biblioteca 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 vive em locais exóticos como DirectX ou um Servidor X. Uma grande quantidade de pacotes adicionais pode ser encontrada na página própria. Por apresentar uma sintaxe simples e encapsular diversas rotinas complexas em comandos facilmente decoráveis, tornou-se uma API (APplication Interface) 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".
[editar] Plataformas suportadas
- DOS/djgpp
- DOS/Watcom
- Windows/MSVC
- Windows/MinGW32
- Windows/Cygwin
- Windows/Borland
- Linux (console)
- Unix (X)
- BeOS
- QNX
- MacOS/MPW
[editar] Especificações
- 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.