XCreateColormap(3X11)

名前
XCreateColormap, XCopyColormapAndFree, XFreeColormap, XColor - カラーマップと色構造体の生成・コピー・破棄

書式
Colormap XCreateColormap(display, w, visual, alloc)
      Display *display;
      Window w;
      Visual *visual;
      int alloc;

Colormap XCopyColormapAndFree(display, colormap)
      Display *display;
      Colormap colormap;

XFreeColormap(display, colormap)
      Display *display;
      Colormap colormap;

引き数

alloc
    割り当てられるカラーマップのエントリーを指定する。 か を渡すことができる。

colormap
    生成、コピー、設定、破棄を行うカラーマップを指定する。

display
    X サーバへの接続を指定する。

visual
    スクリーンがサポートしているビジュアル型を指定する。 スクリーンがサポートしてないビジュアルの場合、エラー となる。

w   カラーマップを作るスクリーンに属するウィンドウを指定する。

説明
関数 は、指定したウィンドウがあるスクリーンに対して、指定したビジュアル型 のカラーマップを生成し、これに対応するカラーマップの ID を返す。 指定したウィンドウはスクリーンを決定するためだけに使われる点に注意せよ。

ビジュアルクラス に対しては、カラーマップエントリーの初期値は未定義である。 に対しては、エントリーは定義済みの値を持つが、これらの値はビジュアルに 依存するもので、X によっては定義されない。 に対しては、引き数 alloc は でなければならず、そうでない場合にはエラー となる。 これら以外のビジュアルクラスにおいて alloc が ならば、カラーマップには初期値として割り当てられているエントリーは存 在せず、クライアントがエントリーを割り当てることができる。 ビジュアル型についての情報は、3.1 章を参照すること。

引き数 alloc が の場合、カラーマップ全体は書き込み可能で割り当てられる。 割り当てられたエントリーの初期値は未定義である。 と を指定すると、 の呼び出しが 0 から N - 1 までの全てのピクセル値返した場合と同じ効果 になる。ここで N は指定したビジュアルのカラーマップエントリーの値である。 を指定すると、 の呼び出しが 0, red_mask, green_mask, blue_mask のピクセル値を返した場 合と同じ効果になる。後者の3つは、指定したビジュアルにおいてそれぞれ対 応するマスクと同じ値を持つ。 しかし全ての場合において、これらのエントリーのいずれも で解放することはできない。

はエラー を起こすことがある。

関数 は指定されたカラーマップとビジュアル型が同じで、また対象とするスク リーン上も同じであるようなカラーマップを生成し、新しいカラーマップのID を返す。 この関数はまた、クライアントが現在割り当てているエントリーの全てを、 指定したカラーマップから新しいカラーマップに移動させる。この時は色の値、 読み取り専用か書き込み可能であるかの属性は変化せず、指定したカラーマッ プのエントリーは解放される。 新しいカラーマップの他のエントリーにおける色の値は未定義である。 指定したカラーマップが、 alloc を としてクライアントで生成されていた場合、新しいカラーマップも で生成され、全てのエントリーに対する全ての色の値は指定したカラーマップ からコピーされ、そして指定したカラーマップは解放される。 指定したカラーマップが、クライアントで として生成されていなかった場合には、移動されるピクセルとプレーンは 以下の関数を用いてクライアントで割り当てられ、それ以降解放されていない ものである:

はエラー を起こすことがある。

はカラーマップリソースIDとカラーマップの関連づけを削除し、カラーマップ のメモリを解放する。 しかし、この関数はスクリーンのデフォルトのカラーマップには無効である。 指定したカラーマップがスクリーンにインストールされたカラーマップの場合、 この関数はこれをアンインストールする( を参照)。 指定したカラーマップが( によって)あるウィンドウのカラーマップとして定義されている場合には、 はウィンドウに関連付けられたカラーマップを に変更し、 イベントを生成する。 X は のカラーマップを使ってウィンドウに表示される色については定義していない。

はエラー を起こすことがある。

構造体
The structure contains:

typedef struct {
    unsigned long pixel;
    unsigned short red, green, blue;
    char flags;
    char pad; } XColor;

red, green, blue の値は常に 0 以上 65535 以下であり、ディスプレイのハー ドウェアが実際に使用するビット数には依存しない。 X サーバはこれらの値をハードウェアが使う範囲に調整する。 黒は (0,0,0) で表され、白は (65535,65535,65535)で表される。 関数によっては、flags メンバで red, green, blue のどれを使うかを制御す る。この場合、flags メンバは のうち0個以上について論理和をとったものである。

返り値

要求されたリソースやサーバメモリの割り当てにサーバが失敗した。

引き数 Colormap の値が、定義されている Colormap を指していない。

An  のウィンドウが Drawable として用いられた。

引き数や引き数の組は正しい型・範囲を持っているが、そのリクエストが要求する
    他の条件に適合できなかった。

指定された数値の中にリクエストの許容範囲を越えているものがある。引き数に対
    して特定の範囲が指定されていなければ、引き数の型で定義されている全ての範 囲が許される。選択肢として定義されている引き数はこのエラーを起こすことが ある。

引き数 Window の値が、定義されている Window を指していない。

関連項目
XAllocColor(3X11), XChangeWindowAtrributes(3X11), XCreateWindow(3X11), XQueryColor(3X11), XStoreColors(3X11)
Xlib - C Language X Interface