|
Xlib は、X Window System のクライアント用ライブラリであり、C言語で書かれている。Xサーバとのやり取りを行うサブルーチン群を含む。それらのサブルーチンを使うことで、Xプロトコルの詳細を知らなくともプログラムを書くことが可能になっている。Xlib を直接使っているアプリケーションは少なく、通常は Xlib の上位にウィジェット・ツールキットを提供する次のようなライブラリを配置して使う。 * Intrinsics (Xt) * Athena widget set (Xaw) * Motif * GTK+ * Qt(X11 版) * Tk Xlib が登場したのは1985年ごろであり、UNIX系オペレーティングシステムのGUIに使われている。XCB は Xlib の後継となるべく開発されている。 == データ型 == Xlib での主要なデータ型は Display 構造体と各種識別子型である。ディスプレイとは、いわばグラフィカルな操作が行われる物理的あるいは仮想的な機器である。Xlib における Display 構造体には、ディスプレイに関する情報が格納されているが、より重要な情報としてクライアントとサーバ間のチャンネルに関する情報も格納している。例えば、UNIX系OSでは Display 構造体には、そのチャンネルのソケットのファイルハンドルが含まれる(ConnectionNumber マクロで取り出し可能)。Xlib の関数の多くは Display 構造体を引数としている。これは、Xlib の関数の多くがチャンネルに対して操作したり、特定のチャンネルに関する操作をするためである。特にサーバとやり取りする Xlib の関数は、チャンネルにアクセスするのにこの構造体を必要とする。ローカルな処理しかしない関数でも、特定のチャンネルに関連したデータを操作するためにこの構造体を必要とする。例えば、イベントキューの操作はチャンネルごとのイベントキューを操作する。ウィンドウ、カラーマップなどはサーバが管理する。つまり、実際の見た目に関するデータはサーバ側にある。クライアントは識別子を使ってそれらのオブジェクトを操作する。クライアントはオブジェクトを直接操作できず、サーバにオブジェクトの識別子を指定して操作を要求する。 Windows 、Pixmap 、Font 、Colormap などの型はすべて識別子であり、実際には32ビットの整数である。クライアントはサーバに対してウィンドウの生成を要求することでウィンドウを生成する。これは、ウィンドウの識別子(つまり番号)を返す Xlib 関数を呼び出すことで行われる。その後、その識別子を使ってクライアントがサーバに対してそのウィンドウへの各種操作を要求する。識別子はサーバ内で一意である。その多くは別々のアプリケーションであっても同じオブジェクトを指すのに使われる。例えば、1つのサーバと接続した2つのアプリケーションがあるとき、1つの識別子でどちらも同じウィンドウを参照することができる。それぞれのアプリケーションは使用しているチャンネルが異なるため、それぞれ別々の Display 構造体を持っている。しかし、同じ識別子についての操作を要求すれば、同じオブジェクトに対して操作が行われる。 抄文引用元・出典: フリー百科事典『 ウィキペディア(Wikipedia)』 ■ウィキペディアで「Xlib」の詳細全文を読む スポンサード リンク
|