BGIデモコラージュ | |
| 書かれた | C++ |
|---|---|
| プラットフォーム | ドス |
| タイプ | ライブラリまたはフレームワーク |
Borland Graphics Interface (BGI とも呼ばれる) は、 1987 年以来、 DOSオペレーティング システム用のいくつかのBorlandコンパイラにバンドルされているグラフィックス ライブラリです。BGI は、 Quattro Proスプレッドシートを含む他の多くの Borland 製品にグラフィックスを提供するためにも使用されていました。
ライブラリは、デバイスに依存しないグラフィックスのサポートを提供するために、ディスクからグラフィック ドライバ( *.BGI) とベクター フォント ( ) をロードしました。プログラマは、コンパイラによって提供されるユーティリティ ( ) を使用して、グラフィック ドライバをオブジェクト コードとしてリンクすることにより、グラフィック ドライバを実行可能ファイルに埋め込むことができました。当時の一般的なグラフィック アダプタとプリンタ (CGA、EGA、VGA、Hercules、AT&T 400、MCGA、3270 PC など) 用のグラフィック ドライバがありました。また、いくつかの種類のプロッタ用の BGI ドライバもありました。
*.CHRbgiobj.exe
Borland の DOS 用 C++ IDE の最後は Borland C++ 3.1 (1992) です。BGI をサポートする最後の C++ 環境は Borland C++ 5.02 (1997) で、これは Windows で動作しますが、DOS プログラムをコンパイルできます。BGI は、C/C++ ではgraphics.lib/でgraphics.h、Pascal ではgraphユニットを介してアクセスできました。
BGIは、イベントベースの3Dアプリケーションではなく2Dプレゼンテーショングラフィックス用に設計されていたため、SDLやOpenGLなどの最新のグラフィックスライブラリほど強力ではありませんでした。しかし、コーディングが簡単であると考えられてきました。 [1] BGIとTurbo C++は時代遅れではありますが、インドの教育では今でも広く使用されています。[2] [3]
サードパーティの BGI ドライバー
Borlandコンパイラの人気を受けて、少数の独立系ソフトウェア開発者が非標準ビデオモード、高度なビデオカード、プロッタ、プリンタ、グラフィックファイル出力用のBGIドライバを開発した。[4]
1994 年に Jordan Hargraphix Software は、ATIやCirrus LogicカードやVESA VBE互換カードなどの一部の SVGA ハードウェアと互換性のあるSVGA BGI ドライバー バージョン 5.5 をリリースしました。また、VGA のレジスタに直接書き込むことで VGA がサポートする非標準グラフィック モード用の調整された VGA ドライバー、Turbo Pascal 7.0 用の保護モードドライバー バージョン、マウス ドライバー (実際には標準マウス ドライバーでサポートされていないビデオ モード用のカーソル ハンドラー) もあります。これらのドライバーはシェアウェアであり、購入するとソース コードとテクニカル サポートを受けることができましたが、現在はサポートされなくなりましたが、2020 年 12 月 19 日に Jordan Hargrave がMIT ライセンスの下でソース コードをGitHubでリリースしてくれました。[5]主なバグは、VESAトゥルーカラーモードでのバイト整列サポートの欠如(そのため、トゥルーカラードライバーはNvidiaグラフィックカードには適していません)と、マウスドライバーのビデオメモリバンク切り替えバグ(リアルモードのアドレス空間は1メガバイトですが、一部のビデオモードでは最大4メガバイトのメモリが必要なため、64キロバイトのバンクに分割されます)です。
遺産
Free Pascal Pascalコンパイラには、BGI互換のライブラリGraphが含まれています。[6]
現在のオペレーティングシステム用のBGI実装もいくつか利用可能です(外部リンクを参照)。
例
Borland Turbo C用に書かれた次のプログラムは、グラフィックスを初期化し、1000 本のランダムな線を描画します。
#include <graphics.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 , "1000 本の線を描画しています..." ); for ( i = 0 ; i < 1000 ; i ++ ) { setcolor ( 1 + random ( 15 )); line ( random ( getmaxx ()), random ( getmaxy ()), random ( getmaxx ()), random ( getmaxy ())); } getch (); closegraph (); return 0 ; }
参照
- アレグロ
- グラフィックス システム拡張(GSX)
- グラフィカル カーネル システム(GKS)
- レイリブ
- サイテックSNAP
- ユニVBE
参考文献
- ^ 「コンピュータグラフィックス」、ISRDグループ、2006年。ISBN 0070593760
- ^ インドの工科大学はテクノロジーへの取り組みがひどい
- ^ なぜインドの学校や大学では今でも Turbo C++ が使われているのでしょうか?
- ^ フリーウェア BGI ドライバー、Jordan Hargraphix BGI ドライバー、Knight Software BGI256
- ^ Turbo C/Turbo Pascal/Borland C++ 用 SuperVGA BGI ドライバー
- ^ ユニット「グラフ」の参考資料: 手順と関数
- Turbo C++ 3.0 ユーザーズ ガイド。Borland International, Inc. 1992 年。
- Borland C++ ライブラリ リファレンス。Borland International, Inc. 1992。
- Borland グラフィックス インターフェース (BGI) ドキュメント
外部リンク
- SDL_bgi は SDL2 で書かれたマルチプラットフォーム ポートであり、いくつかの拡張機能を提供します。
- Winbgim は、Microsoft Windows 用の BGI の移植版であり、いくつかの拡張機能を提供します。
- GRX グラフィックス ライブラリには、元の BGI とほぼ互換性のある BGI サブシステムが含まれています。
- OpenBGI ライブラリは、Microsoft Windows 用の別のポートです。
- libgraph は、SDL1 で記述された Linux 用の BGI 実装です。
- Fileformat.info の chr に関するページには、Borland CHR フォントをデコードする方法に関する情報がいくつか記載されています。
- いくつかの CHR フォント ツールを備えた sunet.se ftp ミラー。
