OpenGL は RGBA とカラーインデックスの両方のレンダリングをサポートしています. 一般にRGBA モードの方がカラーインデックスよりも望ましいでしょう. なぜならばRGBA モードの方がより多くの OpenGL レンダリングの機能が利用でき, また,カラーインデックス・モードはカラーマップのエントリーを ロードしなければならないからです.
GLUT のカラーインデックス・ルーチンは, あるウィンドウのカラーインデックス・カラーマップを 読み書きするのに用いられます. 全ての GLUT カラーインデックス・ウィンドウは 論理的なカラーインデックス・カラーマップを所持しています. あるウィンドウのカラーマップのサイズは, glutGet(GLUT_WINDOW_COLORMAP_SIZE)を コールすることによって知ることができます.
あるプログラム内の GLUT カラーインデックス・ウィンドウは, glutCopyColormapを用いてひとつのカラーインデックス・カラーマップを 複数のウィンドウにコピーすることによって カラーマップ・リソースの共有を試みることができます. 可能であれば,GLUT は実際のカラーマップの共有を試みることもできます. glutCopyColormapを用いてカラーマップをコピーすることにより, 物理的なカラーマップ・リソースの共有が潜在的に可能となりますが, 論理的には各ウィンドウはそれ自身のカラーマップをそれぞ所持しています. 従って,あるウィンドウのコピーされたカラーマップを変更することは, カラーマップの重複(複製?)を強いることになります. この理由により,一般にカラーインデックスを用いたプログラムは, プログラム内においてひとつのカラーインデックス・カラーマップをロードし, 全てのカラーインデックス・ウィンドウにコピーし, そしてカラーマップのセルを変更しないようにしなければなりません.
複数のカラーマップの利用は,
カラーマップ・インストレーション問題,
つまり,カラーマップ・リソースの制限により,ウィンドウの中に
不正なカラーマップによって描画されてしまうものが出てくるという
問題を引き起こしがちになります.