.\" Copyright (c) 1997 Sen Schmidt .\" All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer, .\" in this position and unchanged. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. The name of the author may not be used to endorse or promote products .\" derived from this software withough specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR .\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES .\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. .\" IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, .\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT .\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, .\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY .\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. .\" .\" %Id: vgl.3,v 1.4 1998/03/19 07:34:22 charnier Exp % .\" $FreeBSD$ .Dd August 13, 1997 .Dt VGL 3 .Os FreeBSD 3 .Sh 名称 .Nm vgl .Nd ビデオグラフィックスライブラリ関数 .Sh 書式 .Fd #include .Sh 解説 Libvgl は、コンソールドライバ (syscons) によりサポートされている グラフィックスモードにプログラマがアクセスできるようにするライブラリです。 このライブラリは実際のビデオハードウェアのプログラミングを行い、様々な グラフィックス操作を行うためのいくつかの簡単な機能を提供します。また、 FreeBSD における標準マウスシステムによるマウス機能 ( .Fn moused 参照 ) も サポートしており、これには現在作業中のグラフィックスイメージに マウスポインタをトランスペアレントに重ねあわせる機能も含まれています。この ライブラリは、別の仮想コンソールに切り替える前に現在のイメージをメモリに 保存し、ユーザが切り替えを元に戻したときにそれを復元することによって 画面切り替えを行います。これによって、複数のグラフィックスアプリケーション を異なる仮想コンソールの上で同時に使うことができます。 様々な機能を、以下に簡単に説明します: .Sh 作者 .An Sen Schmidt Aq sos@FreeBSD.org .Sh 関数 .Ft int .Fn VGLInit "int mode" ライブラリを初期化し、グラフィックモード .Em mode を設定します。 .Ft void .Fn VGLEnd "void" グラフィックモードを終了し、 .Fn VGLInit が呼び出される前にアクティブだった画面モードを復元します。 .Ft void .Fn VGLCheckSwitch "void" グラフィックスの出力がないままにプログラムの処理時間が長くなった 場合に、この関数を呼び出すとシステムが画面を切り替えることができる 場合があります。 .Ft int .Fn VGLTextSetFontFile "char *filename" char/string 関数に、組み込みフォントの代りにファイル .Em filename に入っているフォントを使うように指示します。 .Ft int .Fn VGLMouseInit "int mode" マウスを初期化します。引数が .Em VGL_MOUSESHOW である場合は、オプションの画面上マウスポインタを表示します。 .Ft void .Fn VGLMouseMode "int mode" 引数が .Em VGL_MOUSESHOW である場合はマウスポインタを表示し、引数が .Em VGL_MOUSEHIDE である場合はマウスポインタを非表示にします。 .Ft int .Fn VGLMouseStatus "int *x" "int *y" "char *buttons" 現在のマウスポインタの座標およびボタン状態を .Em x, y , buttons で返します。戻り値は、マウスポインタが現在画面に表示されているかいないかを 反映します。 .Ft void .Fn VGLMouseSetImage "VGLBitmap *AndMask" "VGLBitmap *OrMask" この関数を使えば、画面上のマウスポインタのイメージを変えることができます。 .Ft void .Fn VGLMouseSetStdImage "void" この関数は、マウスポインタを標準の矢印に戻します。 .Ft void .Fn VGLLine "VGLBitmap *object" "int x1" "int y1" "int x2" "int y2" "byte color" 座標 .Em x1, y1 から座標 .Em x2, y2 へ色が .Em color の直線を引きます。 .Ft void .Fn VGLBox "VGLBitmap *object" "int x1" "int y1" "int x2" "int y2" "byte color" 左上隅の座標 .Em x1, y1 、右下隅の座標 .Em x2, y2 の四角形を色 .Em color の線で描きます。 .Ft void .Fn VGLFilledBox "VGLBitmap *object" "int x1" "int y1" "int x2" "int y2" "byte color" 左上隅の座標 .Em x1, y1 、右下隅の座標 .Em x2, y2 の塗り潰し四角形を色 .Em color で描きます。 .Ft void .Fn VGLEllipse "VGLBitmap *object" "int xc" "int yc" "int a" "int b" "byte color" 中心が .Em xc, yc であり、幅 .Em a ピクセル、高さ .Em b ピクセルの楕円を色 .Em color の線で描きます。 .Ft void .Fn VGLFilledEllipse "VGLBitmap *object" "int xc" "int yc" "int a" "int b" "byte color" 中心が .Em xc, yc であり、幅 .Em a ピクセル、高さ .Em b ピクセルの塗り潰し楕円を色 .Em color で描きます。 .Ft int .Fn VGLBitmapCopy "VGLBitmap *src" "int srcx" "int srcy" "VGLBitmap *dst" "int dstx" "int dsty" "int width" "int hight" サイズが .Em width, height である長方形のピクセルを、ビットマップ .Em src の左上隅 ( .Em srcx, srcy ) からビットマップ .Em dst の座標 ( .Em dstx, dsty ) へコピーします。 .Ft void .Fn VGLBitmapPutChar "VGLBitmap *Object" "int x" "int y" "byte ch" "byte fgcol" "byte bgcol" "int fill" "int dir" キャラクタ .Em ch を位置 .Em x, y にフォアグラウンド色 .Em fgcol で書き込みます。 .Em fill が != 0 である場合はバックグラウンド色に色 .Em bgcol を使い、それ以外の場合はバックグラウンドは透明になります。キャラクタは引数 .Em dir によって指定される方向に描かれます。 .Ft void .Fn VGLBitmapString "VGLBitmap *Object" "int x" "int y" "char *str" "byte fgcol" "byte bgcol" "int fill" "int dir" 文字列 .Em str を位置 .Em x, y に色 .Em fgcol で書き込みます。 .Em fill が != 0 である場合はバックグラウンド色に色 .Em bgcol を使い、それ以外の場合はバックグラウンド は透明になります。文字列は引数 .Em dir によって指定される方向に描かれます。 .Ft void .Fn VGLClear "VGLBitmap *object" "byte color" ビットマップの全体を色 .Em color に塗り替えます。 .Ft void .Fn VGLSetPalette "byte *red" "byte *green" "byte *blue" この関数は使用するパレットを設定するもので、引数 .Em red, greenm, blue はそれぞれ 256 位置のバイト配列を指すものでなければなりません。 .Ft void .Fn VGLSetPaletteIndex "byte color" "byte red" "byte green" "byte blue" パレットインデックス .Em color を、指定された RGB 値に設定します。 .Ft void .Fn VGLSetBorder "byte color" 境界色を色 .Em color に設定します。 .Ft void .Fn VGLBlankDisplay "int blank" 引数 .Em blank が != 0 である場合は、ディスプレーを空白表示にします。 これは、表示更新の間に画面を閉じて、処理が終ったときに初めてユーザが画面を 見られるようにするために使えます。 .Sh 歴史 .Nm ライブラリは .Fx 3.0 に現れました。