nxgraph.hが提供する描画機能だけでは 満足できない人のためにXlib自体の使い方を説明します。この章ではこの XlibとX-Windowの関係やX-Windowの基本的なことを説明します。
画面に表示されているwindowなどの絵の情報は、グラフィックカードのメモリに 随時記憶されていて、それが画面に随時表示されます。 このようなメモリを一般にVRAMと呼びます。 グラフィックを描くとは、このVRAMに色番号を代入することに他ならないのです。
VRAMの何bitでひとつの点の色 を表すかによっていくつかのグラフィックモードの種類があります。 本書ではもっとも手頃な8bitモードでの使用について解説します。X-Windowでは各アプリケーションは独自のwindowをもちますが ユーザーはそれを自由に移動したり他のwindowの下に置いたり することができます。このようなVRAMの調整はすべて X serverと 呼ばれる基幹プログラムが行ってくれます。プログラマは windowが移動されたりすることについて 何ら対策を取らずにアプリケーションを作成することができます。
VRAMにデータを書き込むのはXserverの仕事であってプログラムは 単にXserverに描画の依頼を送るだけです。つまりプログラマは プログラムにXserverに描画の依頼を送らせるだけなのです。MS-DOSでは プログラムがVRAMにデータを直接書き込むことができたので、さまざまな 高速化技法がプログラマによって編みだされましたが、X-Windowでは単に 依頼を送るだけなのであまり高速化技法はありません。
X-Window systemで採用されている描画の依頼などの通信方法は X-Protocolと呼ばれています。このX-Protocolによる通信はXlib と呼ばれるライブラリの関数が行ってくれます。 結局、プログラマはこのXlibにある描画関数を使うことでX-Window上の グラフィックを実現することになります。
次章よりこのXlibの具体的な使い方を解説します。この解説書を 作成するにあたり、下記の本を参考にしました。 私が思うに Xlibの入門にはこの本がもっとも適切です。
日刊工業新聞社
X-Window Ver.II プログラミング [第2版]
木下凌一・林秀幸 著