Creator アクセラレータの 24 ビットトゥルーカラー画像は、カラーマップのフラッシュ現象を発生させずに、同時に 1600 万色以上の表示をすることができます。Creator の描画エンジンは、24 ビットの描画用に最適化されています。
24 ビットトゥルーカラーの画像表示形式では、カラーマップがフラッシュすることなく、高速描画をすることができます。ただし、Creator アクセラレータの出荷時のデフォルトは、8 ビット疑似カラー画像表示になっています。この出荷時のデフォルトは、24 ビットの画像表示形式では正常に機能しない X ウィンドウシステムのアプリケーションを実行するための設定です。多くのデスクトップアプリケーションは、この画像表示形式で正常に動作します。
デスクトップ上でカラーマップのフラッシュ現象を減らすには、デフォルトの画像表示形式を 24 ビットトゥルーカラーに設定してウィンドウシステムを実行する方法があります。この方法は、Creator アクセラレータ上でウィンドウシステムを実行するのに適しています。
上記のモードで CDE を実行する場合は、/usr/dt/config/Xservers ファイルを編集し、サーバーの X 起動コマンドに "defdepth 24" を追加してください。
この画像表示形式を使用する際の注意点を以下に示します。
X ウィンドウシステムのアプリケーションには、24 ビットの画像表示形式では正常に機能しないものがあります。このようなアプリケーションでは、プログラムが実行に失敗し、BadMatch エラーメッセージを表示します。プログラムによっては、コアダンプが発生したり、正しくない色を表示したりする場合があります。このようなアプリケーションを使用する場合は、アプリケーションを 8 ビット疑似カラーをデフォルトの画像表示形式として実行しなおすことによって、問題の原因を特定することができます。この状態で正しく動作した場合には、そのプログラムが 24 ビットトゥルーカラーのデフォルト画像表示形式では機能しないことがわかります。この場合、24 ビットトゥルーカラーのデフォルト画像表示形式で動作するように、プログラムをアップグレードする必要があります。プログラムがアップグレードされるまでは、出荷時のデフォルトの 8 ビット疑似カラーの画像表示形式を使用してください。
デフォルトの画像表示の深さが 24 ビットの場合には、ピクセルマップおよびウィンドウのバッキングストアは、深さが 8 ビットの場合の 4 倍の領域を必要とします。これによって、サーバーの実行イメージが増大することはありませんが、スワップ領域の使用率が増大します。多くのピクセルマップやバッキングストアウィンドウを使用するプログラムでは、設定を 8 ビットモードにしてください。
24 ビット透過モードでプログラミングを行ってください。デフォルトの画像表示形式が 24 ビットトゥルーカラーの場合は、プログラムは正常に実行されます。
24 ビット透過モードのプログラムが正常に動作しない場合には、いくつかの理由が考えられます。以下に、プログラムを正常に実行するための注意点を示します。
デフォルトの画像表示形式が常に 8 ビット疑似カラーであることを前提にしない。
プログラムによっては、プログラムが 8 ビットだけに対応したシステムから移植され、アップグレードされないために、8 ビットの深さでのみ実行可能なものがあります。また、256 要素の配列でピクセルを格納するプログラムや、カラーマップのダブルバッファリングのために、カラーマップの変更を要求するプログラムもあります。
プログラムが 8 ビット疑似カラーを条件とする場合は、デフォルトの画像表示形式の深さとクラスを確認してください。デフォルトの画像表示形式が 8 ビット疑似カラーでない場合には、画像表示形式のリストを検索するようにしてください。
親ウィンドウのボーダーのピクセルを継承しない。
Creator アクセラレータのような複数のプレーングループを持つ装置では、プログラム中で作成するウィンドウの深さが、親ウィンドウ (通常はルートウィンドウ) の深さに合致しない場合があります。ボーダーのピクセル値を明示的に指定しない場合は、ウィンドウのボーダーのピクセル値には、親ウィンドウの値が継承されます。深さが異なる場合には、XCreateWindow は実行に失敗して BadMatch エラーを表示します。プログラムを実行する場合は、XCreateSimpleWindow ではなく、常に XCreateWindow を使用して、ボーダーのピクセル値を明示的に指定してください。
ウィンドウシステムの "defdepth 8" および "defdepth 24" の両方のモードで、アプリケーションプログラムをテストしてください。