FreeBASIC GfxLib
目次→教本→プログラマーのための案内→GfxLib - FreeBASIC graphics library overview←オリジナル・サイト
目次→FreeBASIC のハッキング→FreeBASIC でのハッキングのための情報→GfxLib - FreeBASIC graphics library overview←オリジナル・サイト
GfxLib - FreeBASIC 描画ライブラリ概要
GfxLib という名前のライブラリは、FreeBASIC に含まれている組み込みの描画ライブラリです。
GfxLib には、QuickBASIC の全ての描画命令を再形成するだけでなく、キーボードとマウスからの入力を扱う、組込みコマンドもあります。
ライブラリの主な寄稿者は、Lillo、coderJeff、DrV です。
ライブラリは、プラットホームにより、様々なドライバーをサポートします:
- すべて:
- Windows:
- Linux & others:
- DOS:
Screencontrol は、(SET_DRIVER_NAME103) をデフォルト・ドライバーの優先権を無効にするために使用できます。
プラットホーム差:
- DOSでは、GfxLib は、マウス・ドライバーが検出されると、マウスの矢を、作成し、管理します。
これを無効にする「公式」の方法は、ありません。
また、矢は、画面がロックされている間、マウス動作に反応しません。
- DOSでは、Windowing と OpenGL は、コマンドと関係づけられました。しかし、スイッチは、利用できません。
(スイッチは、存在しますが、何もしないか、または意味のない値を返します)
- In DOS, the refresh rate setting is not available (some VESA cards do support it, but FreeBASIC for now doesn't)
DOS では、リフレッシュ・レート設定は利用できません。(いくつかの VESA カードはこれをサポートします。しかし、FreeBASIC は今のところサポートしません)
- DOSでは、解像度は、描画カードでサポートされたものに合致しなければなりません。
GfxLib は、VGAモード(ModeX または VESA)から、適切なモードを見つけようとします。利用できるなら、好ましい VESA LFB インターフェースを、さもなければ、バンク VESA です。
サポートされていない解像度は現在、プログラムをクラッシュする可能性があります。
(これを使う前に、ZERO のための SCREENPTR のチェックができないならばです。)
将来、GfxLib は、合致する代わりを見つけられるようになるかもしれません。
最適な互換性のため、640×480、800×600、およびたぶん 1024×768 のような「安全な」解像度をサポートすべきです。
周囲に、768×576 のような様々な追加モードがありますが、それらは、業者固有のもので、他の多くのカードで欠けています。
また、1024x768 以上のモードも、古いカードとラップトップでは、利用できません。
-
SCREEN と SCREENRES が、DOS で画面を消去できないかない場合があると言われています。これは恐らく BIOS バグで、GfxLib では、現在、代替手段がありません。
QBからの違い:
- 描画サポートは、内部的に再設計されました。
QB は、VGA 描画モードを使って、直接 VGA RAM に書いていました。
複数ページは、ビデオ・カードが複数ページをサポートした場合に限って、利用できました。
FB は、backbuffer を使います。定義されたページあたり1つの backbuffer です。そして、バック・グラウンドで、ビデオ RAM (VGA (DOS), VESA (DOS), DirectX (Win32), ...) に、backbuffer をコピーします。
描画命令は、以前 QB で働いていたように、働いていますが、いくつかの注目すべき違いが存在しています:
- バックグラウンド画面更新は、CPU 性能のかなりの量を消費します。
- これを実行する、スレッド(Win32 と Linux) や ISR(DOS は、PITを使用)が、存在します。
- FB の描画サポートと、低レベル(low-level)の画面アクセス(VGA)を混ぜることは、禁止されています。DOS でも同じです。
しかし、直接の画面メモリ・アクセスは、Screenptr と Screenlock を用いて可能で、完全に移植できます。
DOS では、VGA と VESA は、まだ利用できますが、FB の描画サポートと合わせることは、できません。
参照:
ページ歴史:2023-07-09 00:22:06
日本語翻訳:WATANABE Makoto、原文著作者:JasonFirth