La interfaz gráfica de Borland , también conocida como BGI, fue una biblioteca de gráficos incluida en varios compiladores de Borland para los sistemas operativos DOS desde 1987. BGI también se utilizó para proporcionar gráficos para muchos otros productos de Borland, incluida la hoja de cálculo Quattro Pro .
La biblioteca cargaba controladores gráficos ( *.BGI
) y fuentes vectoriales ( *.CHR
) desde el disco para proporcionar compatibilidad con gráficos independientes del dispositivo. El programador podía incorporar el controlador gráfico en el archivo ejecutable al vincularlo como código objeto con la ayuda de una utilidad proporcionada por el compilador ( bgiobj.exe
). Había controladores gráficos para adaptadores gráficos e impresoras comunes de esa época, como CGA, EGA, VGA, Hercules, AT&T 400, MCGA y 3270 PC. También había controladores BGI para algunos tipos de trazadores.
El último entorno de desarrollo integrado de C++ de Borland para DOS es Borland C++ 3.1 (1992). El último entorno de C++ que admite BGI es Borland C++ 5.02 (1997), que funciona en Windows pero puede compilar programas DOS. BGI era accesible en C/C++ con graphics.lib
/ graphics.h
y en Pascal a través de la graph
unidad.
BGI era menos potente que las bibliotecas de gráficos modernas como SDL u OpenGL , ya que estaba diseñado para gráficos de presentación en 2D en lugar de aplicaciones 3D basadas en eventos. Sin embargo, se ha considerado más simple de codificar. [1] BGI y Turbo C++, aunque obsoletos, todavía se usan ampliamente en la educación en la India. [2] [3]
Dada la popularidad de los compiladores de Borland, algunos desarrolladores de software independientes produjeron controladores BGI para modos de video no estándar, tarjetas de video avanzadas, plotters, impresoras y salida de archivos gráficos. [4]
En 1994, Jordan Hargraphix Software lanzó la versión 5.5 de los controladores SVGA BGI, que son compatibles con algunos hardware SVGA, como las tarjetas ATI o Cirrus Logic y las tarjetas compatibles con VESA VBE . También hay controladores VGA modificados para modos gráficos no estándar compatibles con VGA mediante la escritura directa en sus registros, versiones de controlador de modo protegido para Turbo Pascal 7.0 y controlador de mouse (en realidad, controlador de cursor para modos de video no compatibles con controladores de mouse estándar). Estos controladores eran shareware y comprarlos permitía recibir su código fuente y soporte técnico; ahora ya no reciben soporte, pero el 19 de diciembre de 2020, Jordan Hargrave amablemente publicó el código fuente bajo la licencia MIT en GitHub . [5] Los errores principales son la falta de soporte de alineación de bytes en los modos de color verdadero VESA (por lo que el controlador de color verdadero no es adecuado para tarjetas gráficas Nvidia ) y un error de cambio de banco de memoria de video en el controlador del mouse (ya que el espacio de direccionamiento del modo real es de 1 megabyte, pero algunos modos de video requieren hasta 4 megabytes de memoria, se divide en bancos de 64 kilobytes).
Una biblioteca compatible con BGI, denominada Graph
, está incluida en el compilador Pascal de Free Pascal . [6]
También están disponibles varias implementaciones de BGI para los sistemas operativos actuales (consulte los enlaces externos).
El siguiente programa, escrito para Borland Turbo C , inicializa los gráficos y dibuja 1000 líneas aleatorias:
#include <gráficos.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 , "Dibujando 1000 líneas..." ); for ( i = 0 ; i < 1000 ; i ++ ) { setcolor ( 1 + random ( 15 )); line ( random ( getmaxx ()), random ( getmaxy ()), random ( getmaxx ()), random ( getmaxy ())); } getch (); closegraph (); return 0 ; }