Borland grafikgränssnitt
Skrivet i | C++ |
---|---|
Plattform | DOS |
Typ | bibliotek eller ramverk |
Borland Graphics Interface , även känt som BGI, var ett grafikbibliotek med flera Borland- kompilatorer för DOS -operativsystemen sedan 1987. BGI användes också för att tillhandahålla grafik för många andra Borland-produkter inklusive Quattro Pro- kalkylbladet.
Biblioteket laddade grafikdrivrutiner ( *.BGI
) och vektorteckensnitt ( *.CHR
) från disken för att ge enhetsoberoende grafikstöd. Det var möjligt för programmeraren att bädda in grafikdrivrutinen i den körbara filen genom att länka grafikdrivrutinen som objektkod med hjälp av ett verktyg från kompilatorn ( bgiobj.exe
). Det fanns grafikdrivrutiner för den tidens vanliga grafikadaptrar och skrivare, som CGA, EGA, VGA, Hercules, AT&T 400, MCGA och 3270 PC . Det fanns också BGI-drivrutiner för vissa typer av plottrar.
Den sista Borlands C++ IDE för DOS är Borland C++ 3.1 (1992). Den sista C++-miljön som stöder BGI är Borland C++ 5.02 (1997), som fungerar under Windows men kan kompilera DOS-program. BGI var tillgänglig i C/C++ med graphics.lib
/ graphics.h
, och i Pascal via grafenheten
.
BGI var mindre kraftfullt än moderna grafikbibliotek som SDL eller OpenGL , eftersom det designades för 2D-presentationsgrafik istället för händelsebaserade 3D-applikationer. Det har dock ansetts vara enklare att koda. BGI och Turbo C++, även om de är föråldrade, används fortfarande i stor utsträckning inom utbildning i Indien.
BGI-drivrutiner från tredje part
Med tanke på populariteten hos Borland-kompilatorer, producerade några oberoende mjukvaruutvecklare BGI-drivrutiner för icke-standardiserade videolägen, avancerade grafikkort, plottrar, skrivare och grafikfiler.
1994 släppte Jordan Hargraphix Software SVGA BGI-drivrutiner version 5.5 som är kompatibla med viss SVGA-hårdvara som ATI- eller Cirrus Logic -kort och VESA VBE -kompatibla kort. Det finns också anpassade VGA-drivrutiner för icke-standardiserade grafiklägen som stöds av VGA genom att skriva direkt in i dess register, drivrutinsversioner av skyddat läge för Turbo Pascal 7.0 och musdrivrutin (faktiskt markörhanterare för videolägen som inte stöds av standardmusdrivrutiner). Dessa drivrutiner var shareware och köpte dem lät ta emot deras källkod och teknisk support; nu stöds de inte längre, men den 19 december 2020 släppte Jordan Hargrave källkod under MIT-licensen på GitHub . Huvudbuggarna är bristen på stöd för justeringsbytes i VESA true-color- lägen (så att true-color-drivrutinen inte är lämplig för Nvidia- grafikkort) och byte av videominnesbank i musdrivrutinen (eftersom adresseringsutrymmet i real-mode är 1 megabyte, men vissa videolägen kräver upp till 4 megabyte minne, det är uppdelat i 64 kilobyte banker).
Arv
Ett BGI-kompatibelt bibliotek, som heter Graph
, ingår i Free Pascal Pascal-kompilatorn. Flera BGI-implementationer för dagens operativsystem finns också tillgängliga (se Externa länkar.)
Exempel
Följande program, skrivet för Borland Turbo C , initierar grafiken och ritar 1000 slumpmässiga linjer:
0 0
0
0
#include <graphics.h> #include <conio.h> #include <stdlib.h> int main ( int argc , char * argv []) { int i , gd = DETECT , gm ; initgraph ( & gd , & gm , "" ); setbkcolor ( SVART ); cleardevice (); outtextxy ( , , "Dra 1000 linjer..." ); för ( i = ; i < 1000 ; i ++ ) { setcolor ( 1 + slumpmässig ( 15 )); line ( slumpmässig ( getmaxx ()), slumpmässig ( getmaxy ()), slumpmässig ( getmaxx ()), slumpmässig ( getmaxy ())); } getch (); closegraph (); återvända ; }
Se även
- Turbo C++ 3.0 användarhandbok. Borland International, Inc. 1992.
- Borland C++ biblioteksreferens. Borland International, Inc. 1992.
- Borland Graphics Interface (BGI) dokumentation
externa länkar
- SDL_bgi är en multiplattformsport skriven i SDL2; den ger flera tillägg.
- Winbgim är en port för BGI för Microsoft Windows; den ger flera tillägg.
- GRX -grafikbiblioteket innehåller ett BGI-undersystem, mestadels kompatibelt med originalet BGI.
- OpenBGI-biblioteket är en annan port för Microsoft Windows.
- libgraph är en BGI-implementering för Linux skriven i SDL1.
- Fileformat.info-sidan om chr innehåller lite information om hur man avkodar Borland CHR-font.
- sunet.se ftp-spegel med några CHR-fontverktyg.