私のX11クライアント/サーバーはバックアップストア(backing_store = WhenMapped)を使用するように設定されており、ウィンドウが部分的に隠れている場合は正常に動作します。隠されたウィンドウのコンテンツが削除され、現在表示されている部分がバックアップストアからフラッシュされます。再描画する必要はありません...
...しかし、ウィンドウがマッピング解除されて再マップされた場合、動作しません。 UnmapNotifyとMapNotifyイベントを受け取りましたが、マッピング時にウィンドウが空であるため、ウィンドウ全体を直接再描画する必要があります。
私の質問は:Unmap / MapとExposeを使用してバックアップストアをどのように機能させるのですか? (backing_store=常に) 違いはありません。
システム:Ubuntu 16.04、X.Org X Server 1.19.3
ありがとう
答え1
backing_store = always
クライアントコードのウィンドウプロパティを意味すると仮定しますか?しかし、BackingStore
Xサーバーでこのオプションが有効になっていると確信していますか? Xorgを使用する場合は、次のエントリのログ(/var/log/Xorg.0.log
または最近のログ~/.local/share/xorg/Xorg.0.log
)とgrepを見つける必要がありますBacking store
。
> grep 'Backing store' ~/.local/share/xorg/Xorg.0.log
[ 67.851] (==) intel(0): Backing store enabled
有効になっていない場合は作成してみることができます/etc/X11/xorg.conf.d/10-backing-store.conf
(またはセクションがあるファイルがある場合は既存のファイルに追加Device
)。
Section "Device"
Option "BackingStore" "on"
EndSection
X を再起動して Xorg.0.log をチェックして、オプションが有効になっていることを確認します。
+bs
過去に私が正常に使用したXorg自体のオプションもあります(参考+)。
> Xorg --help
...
+bs enable any backing store support