IT用語集 › プログラミング › 標準カラーマップ (ICCCM)

標準カラーマップ (ICCCM)

プログラミング Svenska → 更新: 2026-10-22

複数のXプログラムが256色のカラーマップを共有し、色ごとにサーバーへ問い合わせずに済ませるためのICCCMの方式。三つの乗数とベースピクセルでカラーキューブを記述するプロパティをルートウィンドウに置く。

PseudoColorディスプレイでは、すべての色がカラーマップのスロットであり、独自にセルを確保するプログラムは他のプログラムの分を奪った。ICCCMの答えは、誰か(通常はセッション開始時に動く小さなプログラム)が均等なカラーキューブを一度だけ確保し、それを RGB_DEFAULT_MAP、RGB_BEST_MAP、RGB_GRAY_MAP などの名前のルートウィンドウのプロパティに記述する、というものだった。レコードにはカラーマップID、ビジュアル、red_max、green_max、blue_max、三つの乗数、base_pixel が入る。ある色のピクセル値は base_pixel + r·red_mult + g·green_mult + b·blue_mult でローカルに計算され、サーバーへのリクエストは一切要らない。マップの作成には xstdcmap を使い、Xlibは XGetRGBColormaps で読み、Xmuには既存のものを探したり、なければ作ったりする補助関数がある。

狙いは速度と平和の両方だった。赤と緑を8段階、青を4段階とする3-3-2のキューブは256セルに収まり、ほとんどの画像ビューアには十分で、標準マップを使うプログラムは往復通信を避けられたうえ、専用マップを持つウィンドウ間でフォーカスを動かしたときの派手な色のちらつきも避けられた。killid フィールドは、セルの所有者を示して後片付けを可能にした。TrueColorが普及した2000年代にこの仕組みは不要になった。今に残るのはICCCMの第7章と、誰も頼んでいない RGB_DEFAULT_MAP を今も表示する xprop -root くらいだ。

← 用語集に戻る