Rworks ホーム | お問い合わせ

ウィンドウが重なった部分が黒く抜ける (重複部分が再描画されない)

CAD,CAM系のアプリケーションや、 グラフを表示するなどの比較的複雑な描画を行う X アプリケーションでは、 描画部分が別のウィンドウの下に一旦隠されてから再表示されても、 隠されていた部分の再描画が行われない場合があります。

このような場合、ASTEC-X コントロールパネルの [サーバー]→[パフォーマンス] パネルにある [バッキングストアを使用する] を有効にしたまま、"デフォルトの動作" の値を "NotUseful" から "WhenMapped" に変更してみてください。

バッキングストアの仕組み

非常に複雑な描画を行う X アプリケーション(X クライアント)では、 一般に再描画を行うためには非常に大きなコストがかかります。 このため、X の仕組みには、X サーバー側に描画する部分の 情報をメモリに保存しておき、再描画の際にこれを利用する バッキングストアという機能があります。

バッキングストアは X サーバーのリソースに負担をかける為、 X の規約ではオプションとなっています (必ずしも X サーバーがこの機能をサポートするとは限りません)。 また、この機能が使用可能であっても、 実際に X クライアントがこの機能を使うかどうかは X クライアントと X サーバーのネゴシエーションによって決まります。

つまり、本来であれば X クライアントは X サーバーがバッキングストア機能を利用可能かどうかを調べ、 もし利用できない場合には X クライアントが自ら再描画を行わなければなりません。 また、この機能が利用可能な場合も X クライアントが明示的に これを使用するように X サーバーに要求すべきです。

しかし実際には、バッキングストアが利用可能かどうかのチェックを省いたり、 明示的にこの機能を使用するように X サーバーに要求せずに、 かつバッキングストアの存在を前提としている X クライアントが多く存在します。

先にあげた設定を行うことで、 X クライアントが明示的にバッキングストアを使用すると要求しない場合にも、 ウィンドウが画面に表示されている (マップされている) 間は常にバッキングストアを有効にするように ASTEC-X の動作を変更します。

【先頭に戻る】
Copyright © 2000-2022 Rworks, Inc. All rights reserved. / 個人情報保護方針 / 著作権・リンクについて