Borland Graphics Interface
Borland Graphics Interface (англ. Графический интерфейс Borland), также известный как BGI, представляет собой графическую библиотеку, входящую в программные пакеты нескольких компиляторов компании Borland для операционной системы DOS с 1987 года. Также BGI используется для поддержки графики в других программных продуктах Borland, включая электронные таблицы Quattro. Библиотека загружает графические драйверы (*.BGI
) и векторные шрифты (*.CHR
) с диска для обеспечения устройство-независимой поддержки графики. Также существует возможность встроить графический драйвер в исполняемый файл путём компоновки его в виде объектного кода с помощью специальной утилиты, входящей в пакет компилятора (bgiobj.exe
). Существует множество драйверов для различных графических адаптеров того времени таких, как CGA, EGA и VGA, а также принтеров и некоторых типов плоттеров.
Borland Graphics Interface | |
---|---|
| |
Тип | библиотека или фреймворк |
Разработчик | Borland |
Написана на | C++ |
Операционная система | DOS |
Первый выпуск | 1987 |
Состояние | поддержка прекращена |
Последняя среда разработки под DOS для языка C++ от Borland была Borland C++ 3.1 (1992). Последняя среда разработки, в принципе поддерживающая BGI, была Borland C++ 5.02 (1997), которая, несмотря на то, что работала под операционной системой Windows, имела функционал для компиляции программ для DOS. Интерфейс BGI доступен в C/C++ через библиотеку graphics.lib
и путём подключения заголовочного файла graphics.h
, а в среде Borland Pascal для соответствующего языка программирования — через модуль Graph
.
Библиотека BGI, безусловно, менее мощная, чем современные графические библиотеки, вроде SDL или OpenGL, хотя она была разработана для презентации графических возможностей, а не событийно-ориентированных 3D-приложений. Тем не менее, интерфейс BGI рассматривается, как наиболее простой, для программирования графики. [1]
Сторонние драйвера BGI
На волне популярности компиляторов Borland, несколько независимых разработчиков программного обеспечения создавали собственные BGI-драйверы для нестандартных видеорежимов, современных видеокарт, принтеров, плоттеров и графического вывода в файл. [2]
В 1994 компания Jordan Hargraphix Software выпустила BGI-драйверы для видеорежима SVGA версии 5.5, которые стали совместимы с некоторыми SVGA-адаптерами, среди которых ATI или Cirrus Logic и VESA- и VBE-совместимые карты. Также существовали модифицированные драйверы для нестандартных графических режимов VGA путём записи напрямую в регистры видеоадаптера и драйверы для защищённого режима для Turbo Pascal 7.0. Эти драйверы распространялись по типу shareware и при их приобретении высылался их исходный код и обеспечивалась техническая поддержка, хотя теперь они больше не поддерживаются и стали abandonware.
Пример
Следующая программа, написанная на языке C++, рисует 1000 линий случайных цветов и в случайных местах.
#include <stdio.h>
#include <stdlib.h>
#include <graphics.h>
int main (void)
{
int i, gd, gm;
gd = DETECT;
initgraph (&gd, &gm, "");
setbkcolor (BLACK);
cleardevice ();
outtextxy (0, 0, "Рисую 1000 линий...");
for (i = 0; i < 1000; i++) {
setcolor (1 + random (15));
line ( random(getmaxx()), random(getmaxy()),
random(getmaxx()), random(getmaxy()) );
}
getch ();
closegraph ();
return 0;
}
Ссылки
- "Computer Graphics", ISRD Group, 2006. ISBN 0070593760
- Freeware BGI drivers, Jordan Hargraphix BGI drivers
- Turbo C++ 3.0 User's Guide. Borland International, Inc. 1992.
- Borland C++ Library Reference. Borland International, Inc. 1992.
- Borland Graphics Interface (BGI) Documentation
Внешние ссылки
- Winbgim порт BGI для Microsoft Windows; предоставляет несколько расширений.
- The GRX graphics library содержит подсистему BGI, по большей части совместимую с оригинальным BGI.
- WinBGI и Xbgi, часть ptoc, довольно полные реализации BGI для Microsoft Windows и X11. Последняя версия доступна здесь: SourceForge.
- SDL_bgi кроссплатформенный порт, написанный на SDL2; предоставляет несколько расширений.
- OpenBGI library ещё один порт для Microsoft Windows.
- libgraph реализация BGI для GNU/Linux, написанная на SDL1.