Borland Graphics Interface
# Borland Graphics Interface

Als Borland Graphics Interface (BGI) wird eine Grafikbibliothek für PC-kompatibles DOS bezeichnet, die zusammen mit den Entwicklerwerkzeugen (insbesondere Turbo C, Turbo C++ und Turbo Pascal) der Firma Borland vertrieben wurde. Unter anderem nutzte das Tabellenkalkulationsprogramm Borland Quattro Pro diese Technologie zur Darstellung von Diagrammen und anderen grafischen Elementen.

## Grafiktreiber

Eine zentrale und charakteristische Rolle der BGI-Grafikbibliothek spielen die Grafiktreiber. Diese sind im Lieferumfang diverser Entwicklungsumgebungen von Borland enthalten. Sie enthalten die hardwarespezifische Implementierung der plattformunabhängigen Funktionen zum Zeichnen von Grafikprimitiven. Von Haus aus werden u. a. Grafiktreiber für CGA, EGA, Hercules, AT&T (400 Zeilen), MCGA, 3270 PC und VGA angeboten. Das Angebot wurde durch diverse Grafiktreiber von Drittanbietern ergänzt. Unter anderem gab es SVGA-Treiber sowie Treiber für Drucker, Plotter oder zur Ausgabe in Form einer Bilddatei.
Die Grafiktreiber besitzen die Dateiendung *.bgi und Vektorschriftarten die Endung *.chr. Diese müssen sich stets in demselben Verzeichnis befinden wie die aufrufende Programmdatei. Mit Hilfe der Anwendung bgiobj.exe war es jedoch auch möglich die jeweiligen Treiber in Objektcode (*.obj) zu konvertieren und anschließend zu linken.
Die Grafiktreiber unterstützten mehrere Bildschirme und berücksichtigen das Seitenverhältnis der Pixel je nach Grafikmodus.

## Funktionsweise

Die BGI-Grafikbibliothek umfasst mehr als 50 Funktionen. Neben den rudimentären Zeichenoperationen werden auch komplexe Operationen angeboten, wie beispielsweise Funktionen zum Zeichnen von Balken- oder Kreisdiagrammen.
Bevor grafische Operationen ausgeführt werden können, muss das Programm vom Textmodus in den Grafikmodus wechseln. Dies geschieht durch den Aufruf der Prozedur InitGraph. Diese ermittelt zur Laufzeit die installierte Grafik-Hardware, lädt den am besten geeigneten Grafiktreiber (BGI-Datei) und wechselt abschließend in den Grafikmodus. Um den Grafikmodus zu verlassen und um die genutzten Systemressourcen freizugeben, muss die Prozedur CloseGraph aufgerufen werden.
Der Koordinatenursprung des Koordinatensystems befindet sich in der oberen linken Ecke. Auf einem Bildschirm mit der Auflösung 320×200 Pixel besitzt die obere linke Ecke die Koordinaten (0, 0) und die untere rechte Ecke die Koordinaten (319, 199). Über die setviewport Prozedur ist es möglich, einen rechteckigen Bereich (Viewport) zu definieren, in dem alle nachfolgenden Zeichenoperationen ausgeführt werden.
Für anspruchsvolle 3D-Grafiken und Animationen ist BGI eher ungeeignet, da nicht alle Funktionen der Grafikprozessoren voll ausgeschöpft werden.

## Andere Plattformen

Für Zeichenoperationen auf der grafischen Benutzeroberfläche von Windows-Programmen nutzten spätere Versionen von Turbo Pascal und Turbo C++ die GDI-Grafikbibliothek von Microsoft. Unter Mac OS nutzte Turbo Pascal für Zeichenoperationen die Grafikbibliothek QuickDraw. Für unixoide Betriebssysteme die das X Window System (X11) nutzen, existiert die inoffizielle Implementierung libXbgi.