この節では、さまざまなビジュアルをサポートするデバイスを対象に X11 アプリケーションのプログラムを作成する際、発生する問題について説明します。
X11 クライアントのプログラミングにおいて多い間違いは、デフォルトビジュアルにインデックスクラス (たとえば PseudoColor または StaticColor) があると仮定することです。しかし、デフォルトビジュアルがデバイスによっては 24 ビット TrueColor である可能性もあります。これらのデバイス上で実行する必要があるクライアントについては、そのデフォルトビジュアルの種類に対処できるように準備しておかなければなりません。
よくある誤りを以下に示します。
デフォルトデプスが 8 であると仮定する。
カラーマップが書き込み可能と仮定する。
XGetVisualInfo を使用して適切なビジュアルを探索せず、不適切なデフォルトビジュアルを使用する。
デバイスがクライアントから要求されたビジュアルをサポートしない場合は、次のエラーメッセージが戻されます。このエラーメッセージのうち、# は要求されたデプス番号を表し、n は要求された表示デバイスを表します。表 A-1 に示すサポートされるビジュアルとデバイスの組み合わせで、このメッセージが戻される場合は、インストールに問題があります。
Error: cannot provide a default depth #for device /dev/fbs/n
一般に、各種のデフォルトビジュアルが存在する中でクライアントの移植性を高めるためには、部分的な変更が必要とされます。
デフォルトビジュアル以外のビジュアルを使用してウィンドウを作成するときに、アプリケーションがウィンドウ属性構造内で border_pixel 値を設定しなければ、BadMatch エラーが発生します。これは一般的なプログラミングエラーで、デバッグが困難な場合があります。境界ピクセルの設定についての詳細は、XCreateWindow のマニュアルページを参照してください。
グラフィックスとダブルバッファリングの性能が十分に得られない場合 (加速不足など) は、OpenWindows が root としてインストールされていない可能性があります。