GEM VDI
詳細情報
- 開発
- Digital Research
- 公開
- 種別
- グラフィックスAPI
GEMの下層にある描画レイヤー。画面・プリンター・プロッターを「ワークステーション」として抽象化したデバイス非依存のグラフィックスAPIで、Atari STのROMに焼き込まれ、Digital ResearchのCP/Mアドオンだったgsxから受け継がれた。
Virtual Device Interfaceは、GEMのうち描画を担う半分で、ウィンドウとメニューはAESが受け持った。発想は、Digital Researchが1982年に出したCP/M用グラフィックス拡張GSXと、のちにCGI規格になった同名のANSI草案に由来する。プログラムはv_opnwkでワークステーションを、画面を共有する必要があるときはv_opnvwkで仮想ワークステーションを開き、ハンドルを受け取る。その後はv_pline、v_bar、v_gtextなどの呼び出しで線、塗りつぶし図形、文字を描く。座標はデバイス固有のピクセルでも、ドライバが拡縮する0〜32767の正規化座標でもよい。ラスターコピーのvro_cpyfmは、ウィンドウやアイコンの土台となるブリットだった。同じ呼び出しが画面、プリンター、プロッター、ディスク上のメタファイルに向かうのが、設計の眼目である。
ドライバとフォントを読み込むのはGDOSで、PC版のGEMには付属したが、Atari STでは任意の追加品で、画面ドライバはROMにあった。GDOSは小さな産業に育った。AtariのFONTGDOS、CodeHeadのG+Plus、1993年にBitstreamのスケーラブルフォントを載せたSpeedoGDOS、ROMのVDI全体をTrueType対応の高速版に置き換えたBehne & BehneのNVDIなどである。ゲームのプログラマはこれらを無視し、Line-Aトラップを通じて画面メモリに直接描いた。Atariは推奨しなかったが、みなそうした。