Status XAllocNamedColor(display, colormap, color_name, screen_def_return, exact_def_return)
Display *display;
Colormap colormap;
char *color_name;
XColor *screen_def_return, *exact_def_return;
Status XAllocColorCells(display, colormap, contig, plane_masks_return, nplanes,
pixels_return, npixels)
Display *display;
Colormap colormap;
Bool contig;
unsigned long plane_masks_return[];
unsigned int nplanes;
unsigned long pixels_return[];
unsigned int npixels;
Status XAllocColorPlanes(display, colormap, contig, pixels_return, ncolors, nreds, ngreens,
nblues, rmask_return, gmask_return, bmask_return)
Display *display;
Colormap colormap;
Bool contig;
unsigned long pixels_return[];
int ncolors;
int nreds, ngreens, nblues;
unsigned long *rmask_return, *gmask_return, *bmask_return;
XFreeColors(display, colormap, pixels, npixels, planes)
Display *display;
Colormap colormap;
unsigned long pixels[];
int npixels;
unsigned long planes;
XAllocColor はエラー BadColor を起こすことがある。
関数 XAllocNamedColor は指定したカラーマップに対応するスクリーンのおいて、名前が付けられてい る色を問い合わせる。 この関数はデータベースでの正確な定義とスクリーンがサポートしている最も 近い色との両方を返す。 割り当てられたカラーセルは読み取り専用である。 ピクセル値は screen_def_return に返される。 色の名前のエンコーディングがホストポータブル文字エンコーディングでない 場合、結果は実装依存である。 大文字と小文字のいずれを使っても結果は同じである。 screen_def_return と exact_def_return が同じ構造体を指している場合、 pixel フィールドは正しく設定されるが、色の値は未定義である。 XAllocNamedColor はセルが割り当てられていた場合には 0 でない値を返し、そうでなければ 0 を返す。
XAllocNamedColor はエラー BadColor を起こすことがある。
delim %% 関数 XAllocColorCells は読み書き可能なカラーセルを割り当てる。 色の数は正の値でなければならず、プレーンの数は 0 以上でなければならな い。そうでない場合は BadValue エラーとなる。 ncolors と nplanes が要求された場合、ncolors 個のピクセルと nplane 個 のプレーンマスクが返される。 あるマスクが、他のマスクやピクセルと、1 に設定されたビットを共有する ことはない。 各ピクセルと0個以上のマスクとの論理和を取ることによって、 ncolors * %2 sup nplanes% 個の別々のピクセルを作ることができる。 これらの全ては、リクエストによって書き換えることができるように割り当て られる。 GrayScale や PseudoColor に対しては、各マスクはちょうど1ビットを持ち、これらは全て 1 に設定され る。 DirectColor に対しては、各マスクはちょうど3ビットを持ち、これらはすべて 1 に設定さ れる。 contig が True であり、全てのマスクの論理和が取られている場合には、1 に設定されてい る連続しているビットの集まり1つが GrayScale や PseudoColor に対して作られ、1 に設定されている3組の連続したビットの集まり(各pixel サブフィールド内に1つ)が DirectColor に対して作られる。 割り当てられたエントリーの RGB 値は未定義である。 XAllocColorCells は成功時には 0 でない値を返し、失敗時には 0 を返す。
XAllocColorCells はエラー BadColor, BadValue を起こすことがある。
delim %% 指定する ncolors は正の値で無ければならず、nreds, ngreens, nblues は 0 以上でなければならない。そうでない場合には、エラー BadValue となる。 ncolors 個の色、nreds 個の赤、ngreeens 個の緑、nblues 個の青が要求され た場合、ncolors 個のピクセルが返される。また、マスク内では ngreens 個、 nreds 個、nblues 個のビットがそれぞれ 1 に設定される。 contig が True ならば、各マスクは 1 に設定された連続なビットの集合となる。 あるマスクが、他のマスクやピクセルと、1 に設定されたビットを共有する ことはない。 DirectColor に対しては、各マスクは対応するピクセルサブフィールド内に置かれる。 マスクのサブセットと各ピクセル値の論理和を取ることによって、 ncolors * %2 sup (nreds+ngreens+nblues)% 個の個別のピクセル値を作るこ とができる。 これらの全てはリクエストによって割り当てられる。 しかし、カラーマップ内には ncolors * %2 sup nreds% 個の独立の red エントリーと ncolors * %2 sup ngreens% 個の独立の green エントリーと ncolors * %2 sup blues% 個の独立の blue エントリーしかない。 これは PseudoColor であっても同じである。 ピクセル値のカラーマップエントリーが( XStoreColors, XStoreColor, XStoreNamedColor の使用により)変更された時、ピクセルはマスクに従って分解され、対応する 独立したエントリーが更新される。 XAllocColorPlanes は成功時には 0 でない値を返し、失敗時には 0 を返す。
XAllocColorPlanes はエラー BadColor, BadValue を返すことがある。
関数 XFreeColors は、セルの解放を行う。解放されるセルは、その値が pixels 配列に存在して いるピクセルで表されているものである。 引き数 planes は、いずれのピクセルとも 1 に設定されたビットを共有しては ならない。 全てのピクセルの集合は、この引き数 planes のサブセットとピクセルの論理和 を取ることで作ることができる。 このリクエストは( XAllocColor, XAllocNamedColor, XAllocColorCells, XAllocColorPlanes を使用して) クライアントによって割り当てられたこれらのピクセルを全て解放する。 XAllocColorPlanes で得た個別のピクセルを解放しても、実際には関係するピクセルも全て解放さ れるまで、それらのピクセルは再利用できないことに注意せよ。 同様に、読み取り専用のエントリーは全てのクライアントから解放されるまで は実際に解放されない。また、クライアントが同じ読み取り専用のエントリー を複数回割り当てた場合は、エントリーが解放されるまでに何度も解放を 行わなければならない。
1つ以上のピクセルがエラーとなっていても、指定したピクセルで クライアントによってカラーマップ内に割り当てられたものは全て解放される。 指定したピクセルがカラーマップへの有効なインデックスでなかった場合には、 エラー BadValue となる。 指定したピクセルが、そのクライアントによって割り当てられていない(つ まり、割り当てられていないか、別のクライアントによってのみ割り当てられ ている)場合や、カラーマップの全てのエントリーが書き込み可能で作ら れている( XCreateColormap に AllocAll を渡している)場合には、 BadAccess エラーとなる。 複数のピクセルがエラーの場合、エラーが通知されるピクセルはどれかわから ない。
XFreeColors はエラー BadAccess, BadColor, BadValue を起こすことがある。