@68user様 カラーマップの内容を知るための例みたいなのが本に載っていたので 試してみました。以下のtmp[k]はXColor構造体です。 尚、この例はRGB各32階調カラーマップのカラーセル内の表示色値を得る といったものだそうです。 ----------------------------------------------------------------------------- cmap = DefaultColormap(dummy_dpy,dummy_screen); for(k=0; k<32; k++) { tmp[k].pixel = k | k << 5 | k << 10; tmp[k].pad = 0; tmp[k].flags = DoRed | DoGreen | DoBlue; XQueryColor(dummy_dpy,cmap,&tmp[k]); } ----------------------------------------------------------------------------- で、結果的に ----------------------------------------------------------------------------- Red=0 Green=0 Blue=0 Pixel=0 Red=2114 Green=2114 Blue=2114 Pixel=1057 Red=4228 Green=4228 Blue=4228 Pixel=2114 Red=6342 Green=6342 Blue=6342 Pixel=3171 〜省略〜 Red=61306 Green=61306 Blue=61306 Pixel=30653 Red=63420 Green=63420 Blue=63420 Pixel=31710 Red=65535 Green=65535 Blue=65535 Pixel=32767 ----------------------------------------------------------------------------- といったようにPixel値が32767まできました。 ということは私の環境では 32*32*32=32768色 が カラーマップにエントリされているようです。 実際 Red=61306 Green=4228 Blue=6342 などのように 色を指定したところ、XAllocColorを通してもRGB値が 変化しませんでした。 TrueColorということでカラーマップを書き換えられないので この範囲内でうまくやりくりするしかないのでしょうか・・・。 XCreateColormap と XInstallColormap について 本を見てみましたが、まだよくわかりません。 |