VGL(3)

名称
vgl - ビデオグラフィックスライブラリ関数

書式
#include <vgl.h>

解説
Libvgl は、コンソールドライバ (syscons) によりサポートされている グラフィックスモードにプログラマがアクセスできるようにするライブラリです。 このライブラリは実際のビデオハードウェアのプログラミングを行い、様々な グラフィックス操作を行うためのいくつかの簡単な機能を提供します。また、 FreeBSD における標準マウスシステムによるマウス機能 ( moused() 参照 ) も サポートしており、これには現在作業中のグラフィックスイメージに マウスポインタをトランスペアレントに重ねあわせる機能も含まれています。この ライブラリは、別の仮想コンソールに切り替える前に現在のイメージをメモリに 保存し、ユーザが切り替えを元に戻したときにそれを復元することによって 画面切り替えを行います。これによって、複数のグラフィックスアプリケーション を異なる仮想コンソールの上で同時に使うことができます。 様々な機能を、以下に簡単に説明します：

作者
Sen Schmidt <sos@FreeBSD.org>

関数
int VGLInit(int mode) ライブラリを初期化し、グラフィックモード mode を設定します。 void VGLEnd(void) グラフィックモードを終了し、 VGLInit() が呼び出される前にアクティブだった画面モードを復元します。 void VGLCheckSwitch(void) グラフィックスの出力がないままにプログラムの処理時間が長くなった 場合に、この関数を呼び出すとシステムが画面を切り替えることができる 場合があります。 int VGLTextSetFontFile(char *filename) char/string 関数に、組み込みフォントの代りにファイル filename に入っているフォントを使うように指示します。 int VGLMouseInit(int mode) マウスを初期化します。引数が VGL_MOUSESHOW である場合は、オプションの画面上マウスポインタを表示します。 void VGLMouseMode(int mode) 引数が VGL_MOUSESHOW である場合はマウスポインタを表示し、引数が VGL_MOUSEHIDE である場合はマウスポインタを非表示にします。 int VGLMouseStatus(int *x, int *y, char *buttons) 現在のマウスポインタの座標およびボタン状態を x, y , buttons で返します。戻り値は、マウスポインタが現在画面に表示されているかいないかを 反映します。 void VGLMouseSetImage(VGLBitmap *AndMask, VGLBitmap *OrMask) この関数を使えば、画面上のマウスポインタのイメージを変えることができます。 void VGLMouseSetStdImage(void) この関数は、マウスポインタを標準の矢印に戻します。 void VGLLine(VGLBitmap *object, int x1, int y1, int x2, int y2, byte color) 座標 x1, y1 から座標 x2, y2 へ色が color の直線を引きます。 void VGLBox(VGLBitmap *object, int x1, int y1, int x2, int y2, byte color) 左上隅の座標 x1, y1 、右下隅の座標 x2, y2 の四角形を色 color の線で描きます。 void VGLFilledBox(VGLBitmap *object, int x1, int y1, int x2, int y2, byte color) 左上隅の座標 x1, y1 、右下隅の座標 x2, y2 の塗り潰し四角形を色 color で描きます。 void VGLEllipse(VGLBitmap *object, int xc, int yc, int a, int b, byte color) 中心が xc, yc であり、幅 a ピクセル、高さ b ピクセルの楕円を色 color の線で描きます。 void VGLFilledEllipse(VGLBitmap *object, int xc, int yc, int a, int b) "byte color" 中心が xc, yc であり、幅 a ピクセル、高さ b ピクセルの塗り潰し楕円を色 color で描きます。 int VGLBitmapCopy(VGLBitmap *src, int srcx, int srcy, VGLBitmap *dst, int) dstx" "int dsty" "int width" "int hight" サイズが width, height である長方形のピクセルを、ビットマップ src の左上隅 ( srcx, srcy ) からビットマップ dst の座標 ( dstx, dsty ) へコピーします。 void VGLBitmapPutChar(VGLBitmap *Object, int x, int y, byte ch, byte fgcol, byte bgcol, int fill, int dir) キャラクタ ch を位置 x, y にフォアグラウンド色 fgcol で書き込みます。 fill が != 0 である場合はバックグラウンド色に色 bgcol を使い、それ以外の場合はバックグラウンドは透明になります。キャラクタは引数 dir によって指定される方向に描かれます。 void VGLBitmapString(VGLBitmap *Object, int x, int y, char *str, byte fgcol, byte bgcol, int fill, int dir) 文字列 str を位置 x, y に色 fgcol で書き込みます。 fill が != 0 である場合はバックグラウンド色に色 bgcol を使い、それ以外の場合はバックグラウンド は透明になります。文字列は引数 dir によって指定される方向に描かれます。 void VGLClear(VGLBitmap *object, byte color) ビットマップの全体を色 color に塗り替えます。 void VGLSetPalette(byte *red, byte *green, byte *blue) この関数は使用するパレットを設定するもので、引数 red, greenm, blue はそれぞれ 256 位置のバイト配列を指すものでなければなりません。 void VGLSetPaletteIndex(byte color, byte red, byte green, byte blue) パレットインデックス color を、指定された RGB 値に設定します。 void VGLSetBorder(byte color) 境界色を色 color に設定します。 void VGLBlankDisplay(int blank) 引数 blank が != 0 である場合は、ディスプレーを空白表示にします。 これは、表示更新の間に画面を閉じて、処理が終ったときに初めてユーザが画面を 見られるようにするために使えます。

歴史
vgl ライブラリは FreeBSD 3.0 に現れました。