[b-free 169] Re: GUI architecture

ISOYAMA Takashi (isoyama@orient.co.jp)
Thu, 30 Jan 1997 14:06:37 +0900

磯山です。こんにちは。

> ということなのですが、性能は(極端でなければ)二の次として造り易さ、堅牢性
>、保守性の有利なほうを採用したいと思います(どっちが得かよくわからない)。
> 最初のバージョンはVGAかSVGA(800×600)をCPUで描画することになるで
>しょうが、ディスプレイカードにやらせるとしたらディスプレイドライバとのインタ
>ーフェースはどのようにしたらよいでしょうか。
> みなさんのお考えを聞かせてください。よろしくおねがいします。

参考になるかどうかわかりませんが、
『Windowsデバイスドライバプログラミング入門』という書籍を紹介いたします。

『Windowsデバイスドライバプログラミング入門』
峰晴美/技術評論社/2800円

第1部 Windowsの構造
第1章 Windowsの仕組み
第2章 デバイスドライバの機能
第2部 デバイスドライバ
第3章 ディスプレイデバイスドライバ
第4章 ディスプレイグラバ
第3部 仮想デバイスドライバ
第5章 仮想デバイスドライバのスタイル
第6章 仮想ディスプレイデバイス
第6章 仮想マシンマネージャ(VMN)

もっと詳しい情報は、MSDNを購読しないと無理かもしれません。

いずれにしても

アプリケーション

ディスプレイプリミティブ

ディスプレイデバイスドライバ

の流れになると思います。

デバイスドライバが最低でも持っていなくちゃいけないファンクションは、
『スキャンライン(1ピクセル幅の水平線)』と
『ポリライン(1ピクセル幅で任意の方向に引ける直線)』
の2つで、
ディスプレイプリミティブは、最悪この2つのファンクションのみを使って
すべての『絵』を表示できるように作っておかなければなりません。
(描画は、あくまでもデバイスドライバ側で行います。ディスプレイプリミティ
ブは、デバイスドライバにメモリ描画環境を渡して、そこに書いてもらいます)

もちろん、デバイスドライバに「あなたの持っているファンクションはなん
ですか?」と問い合わせて、「これとこれとこれですよ」と返事を返してもらって、
使えるファンクションは、デバイスドライバ側で描画してもらえば、
それだけ速度が速くなります。

-------------------------------
磯山卓志 <isoyama@orient.co.jp>