Article de reference

Interface graphique Borland

L' interface graphique Borland , également connue sous le nom de BGI, était une bibliothèque graphique fournie avec plusieurs compilateurs Borland pour les systèmes d'exploitati...

L' interface graphique Borland , également connue sous le nom de BGI, était une bibliothèque graphique fournie avec plusieurs compilateurs Borland pour les systèmes d'exploitation DOS depuis 1987. BGI était également utilisée pour fournir des graphiques à de nombreux autres produits Borland, notamment la feuille de calcul Quattro Pro .

La bibliothèque chargeait les pilotes graphiques ( *.BGI) et les polices vectorielles ( *.CHR) à partir du disque afin de fournir un support graphique indépendant du périphérique. Le programmeur pouvait intégrer le pilote graphique dans le fichier exécutable en liant le pilote graphique en tant que code objet à l'aide d'un utilitaire fourni par le compilateur ( bgiobj.exe). Il existait des pilotes graphiques pour les adaptateurs graphiques et les imprimantes courants de l'époque, tels que CGA, EGA, VGA, Hercules, AT&T 400, MCGA et 3270 PC. Il existait également des pilotes BGI pour certains types de traceurs.

Le dernier environnement C++ IDE de Borland pour DOS est Borland C++ 3.1 (1992). Le dernier environnement C++ qui supporte BGI est Borland C++ 5.02 (1997), qui fonctionne sous Windows mais peut compiler des programmes DOS. BGI était accessible en C/C++ avec graphics.lib/ graphics.h, et en Pascal via l' graphunité.

BGI était moins puissant que les bibliothèques graphiques modernes telles que SDL ou OpenGL , car il a été conçu pour les graphiques de présentation 2D plutôt que pour les applications 3D basées sur des événements. Cependant, il a été considéré comme plus simple à coder. BGI et Turbo C++, bien qu'obsolètes, sont encore largement utilisés dans l'éducation en Inde.

Pilotes BGI tiers

Étant donné la popularité des compilateurs Borland, quelques développeurs de logiciels indépendants ont produit des pilotes BGI pour les modes vidéo non standard, les cartes vidéo avancées, les traceurs, les imprimantes et la sortie de fichiers graphiques.

En 1994, Jordan Hargraphix Software a publié les pilotes SVGA BGI version 5.5 qui sont compatibles avec certains matériels SVGA comme les cartes ATI ou Cirrus Logic et les cartes compatibles VESA VBE . Il existe également des pilotes VGA modifiés pour les modes graphiques non standard pris en charge par VGA en écrivant directement dans ses registres, des versions de pilotes en mode protégé pour Turbo Pascal 7.0 et un pilote de souris (en fait un gestionnaire de curseur pour les modes vidéo non pris en charge par les pilotes de souris standard). Ces pilotes étaient des shareware et leur achat permettait de recevoir leur code source et leur support technique ; maintenant, ils ne sont plus pris en charge, mais le 19 décembre 2020, Jordan Hargrave a aimablement publié le code source sous la licence MIT sur GitHub . Les principaux bugs sont le manque de prise en charge de l'alignement des octets dans les modes VESA en couleurs vraies (le pilote en couleurs vraies n'est donc pas adapté aux cartes graphiques Nvidia ) et un bug de commutation de banque de mémoire vidéo dans le pilote de la souris (étant donné que l'espace d'adressage en mode réel est de 1 mégaoctet, mais certains modes vidéo nécessitent jusqu'à 4 mégaoctets de mémoire, il est divisé en banques de 64 kilo-octets).

Héritage

Une bibliothèque compatible BGI, nommée Graph, est incluse dans le compilateur Free Pascal Pascal. Plusieurs implémentations BGI pour les systèmes d'exploitation actuels sont également disponibles (voir Liens externes.)

Exemple

Le programme suivant, écrit pour Borland Turbo C , initialise les graphiques et dessine 1000 lignes aléatoires :

#include <graphics.h> #include <conio.h> #include <stdlib.h>
int main ( int argc , char * argv []) { int i , gd = DETECT , gm ; initgraph ( & gd , & gm , ); setbkcolor ( BLACK ); cleardevice (); outtextxy ( 0 , 0 , "Dessin de 1000 lignes..." ); for ( i = 0 ; i < 1000 ; i ++ ) { setcolor ( 1 + random ( 15 )); line ( random ( getmaxx ()), random ( getmaxy ()), random ( getmaxx ()), random ( getmaxy ())); } getch (); closegraph (); return 0 ; }

Plus d articles de Worldlex Wiki

Revenez a l index pour explorer davantage de pages sur l histoire, la science, la culture, la geographie et la societe en francais.

Explorer l index