Borland Graphics Interface

Эта статья находится на начальном уровне проработки, в одной из её версий выборочно используется текст из источника, распространяемого под свободной лицензией
Материал из энциклопедии Руниверсалис
Borland Graphics Interface
Скриншот программы Borland Graphics InterfaceBGIdemoCollage
Тип библиотека или фреймворк
Разработчик Borland
Написана на C++
Операционная система DOS
Первый выпуск 1987
Состояние поддержка прекращена

Borland Graphics Interface (англ. Графический интерфейс Borland), также известный как BGI, представляет собой графическую библиотеку, входящую в программные пакеты нескольких компиляторов компании Borland для операционной системы DOS с 1987 года. Также BGI используется для поддержки графики в других программных продуктах Borland, включая электронные таблицы Quattro. Библиотека загружает графические драйверы (*.BGI) и векторные шрифты (*.CHR) с диска для обеспечения устройство-независимой поддержки графики. Также существует возможность встроить графический драйвер в исполняемый файл путём компоновки его в виде объектного кода с помощью специальной утилиты, входящей в пакет компилятора (bgiobj.exe). Существует множество драйверов для различных графических адаптеров того времени таких, как CGA, EGA и VGA, а также принтеров и некоторых типов плоттеров.

Последняя среда разработки под 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;
}

Ссылки

  1. "Computer Graphics", ISRD Group, 2006. ISBN 0070593760
  2. Freeware BGI drivers Архивная копия от 26 августа 2018 на Wayback Machine, Jordan Hargraphix BGI drivers Архивная копия от 26 августа 2018 на Wayback Machine

Внешние ссылки

  • 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.