私は画面にルーラーを表示するプログラムを持っており、Xlibはカーソル位置を100msごとにポーリングして更新ディスプレイ。ディスプレイは数字/行などで構成されています。特に、カーソルの位置を示す行(これが更新される理由です)。カーソルで移動する線を描画する必要がありますが、100msごとにウィンドウ全体を再描画しないようにしたい
問題は、古い行を消去し、その下のコンテンツを復元する必要があるため、位置の変更を反映するためにウィンドウ全体を再描画する必要があるということです。これを10回行うと、非常にちらつきのあるプログラムになります。
私はカーソルが(すなわち定規の範囲内で)インジケータラインを変更する立場にあることを確認した後、私はのみ定規を再描画可能性がありますが、それがだったとき、それはまだかなり悪いちらつくう更新する。
GTKとXlibの両方にnoobを並べ、すべてのアドバイスをいただければ幸いです。
コードはhttps://github.com/zjmichen/zRuler
あなたはgtk-demos app、いくつかの手書きの例をチェックしてください。 – erick2red