Allegro Una libreria per la programmazione di videogiochi Lingua: English  español  Deutsch  français  한국어 (Hangul)  polski 

 
 

Allegro
  Notizie
  Introduzione
  Licenza
  Collaboratori
  Vecchie notizie
  Loghi

Downloads
  Ultima versione
  Vecchie versioni
  CVS

Documentazione 
  API
  FAQ
  Tutorials
  Il futuro

Supporto
  Aiuto
  Mailing lists
  IRC

Giochi, programmi di utilità, librerie, etc
  Allegro.cc

Varie
  DIGMID
  Collegamenti
  Mirrors
  Webmasters
  Humor

 
 
  

Introduzione

Allegro è una libreria portabile principalmente indirizzata alla programmazione di videogiochi ed al multimedia, originariamente concepita da Shawn Hargreaves per il compilatore DJGPP in un misto di C ed assembler.

Secondo la Compagnia della Musica di Oxford, Allegro in italiano sta per «rapido, vitale, luminoso». E' anche un acronimo ricorsivo per indicare «Allegro Low LEvel Game ROutines».

Supporto multipiattaforma

  • Dos (DJGPP, Watcom)
  • Unix (Linux, FreeBSD, Solaris, Irix)
  • Windows (MSVC, MinGW, Borland, Cygwin)
  • BeOS
  • MacOS (alpha)
  • QNX

Funzioni grafiche

  • Primitive grafiche:
    • pixel, linee, rettangoli, cerchi, ellissi, archi, curve di Bezier
    • riempimento di forme, con o senza pattern
    • poligoni: flat, Gouraud, con texture e traslucidi
  • Sprites:
    • sprite trasparenti, compressi e compilati
    • blitting, rotazione, ridimensionamento, riduzione, alpha blending, Gouraud shading
    • supporto nativo dei file in formato BMP, LBM, PCX e TGA (altri possono essere aggiunti tramite estensioni della libreria)
  • Palette di colori:
    • manipolazione di palette di colori (lettura, scrittura, conversione)
    • conversione di formati di colore RGB <-> HSV
  • Testo:
    • gestisce testo nel formato Unicode (con supporto per trasparenza, colori, allineamento)
  • Varie:
    • scrive direttamente sullo schermo o su bitmap di qualunque dimensione in memoria
    • scrolling hardware e triple buffering (se disponibile), split screen in mode-X
    • funzioni di animazione per il formato FLI/FLC

Driver grafici

  • Dos:
    • VGA modo 13h
    • mode-X (23 risoluzioni VGA più la modalità estesa 640x400 unchained)
    • modi SVGA in 8, 15, 16, 24 e 32 bits per pixel
    • accesso lineare al framebuffer tramite VBE 2.0
    • accelerazione hardware attraverso l'API VBE/AF se supportata
    • driver grafici aggiuntivi tramite il progetto FreeBE/AF
  • Unix:
    • X Window, DGA, fbcon
    • SVGAlib
    • VBE/AF
    • mode-X
    • VGA
  • Windows:
    • DirectX (in finestra o a schermo intero)
    • GDI
  • BeOS:
    • BWindowScreen
    • BDirectWindow

Funzioni audio

  • Midi:
    • supporto nativo al formato musicale MIDI (con 64 effetti simultanei)
    • controllo dinamico e risposta agli eventi note on, note off, main volume, pan, pitch bend, e program change
    • utilizza patch General MIDI
    • possibilità di importare patch wavetable per i file MIDI (patch SF2 e GUS)
  • Wave:
    • supporto nativo per i formati WAV e VOC (suona in loop, a ritroso o in modo bidirezionale)
    • streaming audio
    • modifica del volume, pan, pitch, ecc. durante l'ascolto

Driver audio

  • Dos:
    • Adlib, SB, SB Pro, SB16, AWE32
    • MPU-401
    • ESS AudioDrive
    • Ensoniq Soundscape
    • Windows Sound System
  • Unix:
    • OSS
    • ESD
    • ALSA
  • Windows:
    • DirectSound
    • WaveOut
    • driver di sistema MIDI

Funzioni matematiche

  • aritmetica a virgola fissa e funzioni trigonometriche
  • tavole trigonometriche precalcolate
  • manipolazione di vettori/matrici/quaternioni per il 3d (traslazioni, rotazioni, ridimensionamenti, proiezioni)

Varie

  • gestione del mouse, della tastiera e del joystick
  • gestione dei timer ad interrupt ad alta risoluzione (risoluzione di 10, 5 o meno ms dependentemente dalla piattaforma)
  • simulazione del retrace verticale sotto DOS
  • gestione di file di configurazione
  • gestione di file compressi in formato LZSS
  • gestione di datafile compressi multi-oggetto ideali per salvare risorse
  • programma di utilità per creare datafile (grabber)
  • semplice GUI per maschere e selezione di file