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.[1]
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.[2][3] Von Haus aus werden u. a. Grafiktreiber für CGA, EGA, Hercules, AT&T (400 Zeilen), MCGA, 3270 PC und VGA angeboten.[4] 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.[5][6]
Die Grafiktreiber besitzen die Dateiendung *.bgi
und Vektorschriftarten die Endung *.chr
. Diese müssen sich stets in demselben Verzeichnis befinden wie die aufrufende Programmdatei.[7] 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.[2][8]
Die Grafiktreiber unterstützten mehrere Bildschirme und berücksichtigen das Seitenverhältnis der Pixel je nach Grafikmodus.[4][9]
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.[4]
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.[10][4]
Für anspruchsvolle 3D-Grafiken und Animationen ist BGI eher ungeeignet, da nicht alle Funktionen der Grafikprozessoren voll ausgeschöpft werden.[9]
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.[3] Unter Mac OS nutzte Turbo Pascal für Zeichenoperationen die Grafikbibliothek QuickDraw.[11] Für unixoide Betriebssysteme die das X Window System (X11) nutzen, existiert die inoffizielle Implementierung libXbgi.[12]
Literatur
- Ian O. Angell, Dimitrios Tsoubelis: Advanced Graphics on VGA and XGA Cards Using Borland C++. 1. Auflage. Red Globe Press, London 1992, ISBN 978-0-470-21833-4 (englisch).
- Andreas Bartel: Grafikprogrammierung mit Turbo Pascal 6.0. 1. Auflage. Vieweg+Teubner, Wiesbaden 1992, ISBN 3-528-05206-6.
- James Alan Farrell: From Pixels to Animation: An Introduction to Graphics Programming. 1. Auflage. Academic Press, Boston 1994, ISBN 0-12-249710-4 (englisch).
Weblinks
- Borland Graphics Interface (BGI) for Windows. C++ Dokumentation. (englisch).
Einzelnachweise
- ↑ Diverse BGI- und CHR-Dateien im Installationsverzeichnis von Borland Quattro 1.0 (1988).
- ↑ a b Christos Emmanuilidis, Spiros Alexakis: Effektiv Programmieren mit Turbo Pascal 5.0/5.5. 1. Auflage. Vieweg+Teubner, Wiesbaden 1990, ISBN 3-528-04636-8, Graphik mit Turbo Pascal 4.0 und 5.0, S. 264 f.
- ↑ a b Max K. Agoston: Computer Graphics and Geometric Modelling. 1. Auflage. Springer, London 2005, ISBN 978-1-85233-818-3, S. 13–16 (englisch).
- ↑ a b c d Turbo Pascal: Owner’s Handbook (Version 4.0). 1987, OCLC 1036910574, S. 69, 305–322 (englisch, uni-stuttgart.de [PDF; 22,7 MB; abgerufen am 5. Februar 2024]).
- ↑ Ullrich von Bassewitz: Freeware BGI Drivers. In: von-bassewitz.de. 11. Juni 2021, abgerufen am 11. Februar 2024 (englisch).
- ↑ John Bridges: SvgaBGI. In: github.com. Jordan Hargraphix Software, 1994, abgerufen am 11. Februar 2024 (englisch).
- ↑ Harley Flanders: Scientific Pascal. 2. Auflage. Birkhauser, Boston 1996, ISBN 978-0-8176-3760-6, 5 Graphics, S. 169–243 (englisch).
- ↑ registerbgidriver. In: home.cs.colorado.edu. University of Colorado Boulder, abgerufen am 4. Februar 2024 (englisch).
- ↑ a b James Alan Farrell: From Pixels to Animation: An Introduction to Graphics Programming. 1. Auflage. Academic Press, Boston 1994, ISBN 0-12-249710-4, S. 17–64, 211–232, 359–370 (englisch).
- ↑ setviewport. In: home.cs.colorado.edu. University of Colorado Boulder, abgerufen am 4. Februar 2024 (englisch).
- ↑ Turbo Pascal for the Mac: User’s Guide and Reference Manual. 1986, ISBN 0-87524-154-9, S. 49 f., 58 (englisch).
- ↑ Guido Gonzato: libXbgi Quick Reference. (PDF; 163 kB) In: hackaday.io. 26. August 2014, abgerufen am 12. Februar 2024 (englisch).
Auf dieser Seite verwendete Medien
Autor/Urheber: Cobalt-BR, Lizenz: CC0
An example of the various adapters and resolutions the BGI could handle:
Upper Left: CGA 320x200, 4 Color, Palette 2 (Green, Red, Brown)
Upper Right: EGA 640x200, 16 Color
Lower Left: MCGA 640x480, 2 Color, B/W
Lower Right: VGA 640x480, 16 Color