Allegro (biblioteca)

Origem: Wikipédia, a enciclopédia livre.
Allegro
Desenvolvedor Colaboradores do projeto Allegro
Plataforma x86, x64, ARM (Android)
Lançamento 1990
Versão estável 5.2.7 (08 de Março de 2021)
Versão em teste 5.2.8
Idioma(s) Inglês
Escrito em C
Sistema operacional Multiplataforma
Gênero(s) Bilioteca Gráfica
Licença Allegro 4 Giftware
Allegro 5 Licença zlib
Estado do desenvolvimento Ativo
Página oficial www.liballeg.org
Cronologia
Allegro 4

Allegro é uma biblioteca livre de código fonte aberto para o desenvolvimento de Video games.

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[editar | editar código-fonte]

Foi 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[editar | editar código-fonte]

Especificações[editar | editar código-fonte]

  • 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[editar | editar código-fonte]

O 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[editar | editar código-fonte]

Ver também[editar | editar código-fonte]

Ligações externas[editar | editar código-fonte]