問題タブ [double-buffering]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
775 参照

.net - ダブルバッファリングでもGDI+がちらつく

小さな画像を左側から画面、右側に移動しようとしています。

ユーザーコントロールのスタイルを次のように設定しました。

OnPaintハンドラーで、オブジェクトをインスタンスに描画します。これは画面外のバッファーであり、1回の呼び出しを使用しBufferedGraphicsて結果を参照にBitBltします。e.Graphics

だから、私は本ですべてをやったようで、非常に滑らかなちらつきのない描画をしました、そしてそれでも私はオブジェクトが少し途切れているのを見ることができます。

したがって、基本的に2つの可能性が残っています。呼び出しているタイマーが.Invalidate(DirtyRect)一定の間隔で正確に起動せず、オブジェクトが途切れているように見えるか、BitBltが期待どおりに機能しないかのいずれかです。

誰かが何が問題になるのか考えていますか?

更新:考え直してみると、吃音やちらつきというよりは、引き裂くように見えます。オブジェクトが最後の数ピクセルを見逃しているように見えることがあるためです。VSYNCを利用する可能性を検討します。

0 投票する
1 に答える
204 参照

java - backbuffer VolatileImage のサイズ変更

Java アプレットのバックバッファに関して小さな問題があります。現在、実行時のアプレットのサイズ変更については考慮していません。したがって、パネルのサイズが変更されますが、バックバッファーは初期サイズを維持します。したがって、アプレットの一部のみが再描画され、画像サイズでカバーされます。それにもかかわらず、私はイメージを再初期化しようとしました

残念ながら、それは感謝しない振る舞いです。ユーザーがブラウザー ウィンドウのサイズを変更するためにドラッグを開始するとすぐに、再作成は、描画するためのバックバッファーがないことを意味します。そのため、パネルがちらつき、灰色の背景、以前のパネル、またはレンダリングしようとしている実際の図面のいずれかが表示されます。

サイズ変更中に幅と高さにオフセットを設定してちらつきの動作を下げることを検討しましたが、これはまだ適切な方法ではないようで、単なる回避策です。

ちらつきなしでサイズを変更するための提案はありますか?!

敬具。

0 投票する
2 に答える
974 参照

objective-c - OpenGL のダブルバッファリングのパフォーマンスが一貫していないように見えるのはなぜですか?

OSX でシンプルなグラフィカル アプリを作成しています。フレーム間のシステム時間の差をチェックすることで、フレームレートの監視を開始しました。数フレームごとに少しぶら下がっているようです。

アプリは、現在 200 fps (5 ミリ秒フレーム) に設定されている NSTimer オブジェクトで実行されます。メイン コードが遅いだけではないことを確認するために、[self.context flushBuffer]; を除くメイン ループ全体をコメント アウトしました。(もちろん、フレームレートのサンプリング コードも)。この単一の呼び出しを繰り返しても、一度に複数のフレームでハングします。コンソール出力の例を次に示します。

これは、各ループ反復間のミリ秒単位の時間です。200 fps では、フレームごとに約 5 ミリ秒になるはずですが、10、15、または 20 ミリ秒も繰り返しハングします。-initOpenGL 関数でわかるように、Vsyncing は無効になっています。

編集、新しい情報:これは、ダブルバッファリングとシングルバッファリングに関係があることを確認できます。DoubleBuffer 属性なしで NSOpenGLPixelFormat を初期化すると、200 fps で完全に実行されます。その属性では、私は吃音を続けています。

0 投票する
1 に答える
1757 参照

bitmap - vsync を使用したダブル バッファリング (画面のリフレッシュ レートと同期) - C# Windows フォーム

PictureBox の BMP を毎秒 60 回、更新ごとに変化する線のパターンで更新しようとしています。何が起こっているかというと、画面の更新の間に画像が部分的に更新されています。したがって、あなたが見ているものは、あるパターンの一部であり、次のパターンの一部です. 画面を更新するたびに、正確に 1 回更新する必要があります。理想的には、私の目標はバック バッファーを更新し、それをフロント バッファーにコピーすることです。ゲームで vsync を使用して、画面が更新された直後にのみ画面が更新されるようにフロント バッファーをロックできると聞いたことがあります。このロックを利用できれば、更新ごとに 1 回正確に更新できるようになります。しかし、私はまだそれを行う方法を理解できていません。

何か案は?

Windows フォームで DoubleBuffering = true プロパティを使用してみました。ただし、PictureBox では機能しない場合があります。CopyMemory (ネイティブ dll 呼び出し) を使用して、新しいパターンを PictureBox 内のビットマップにコピーしました。

また、最後の段落で同じ手法で WriteableBitmap を使用しようとしましたが、スタック交換で他の人が提案した方法で行ったにもかかわらず、何らかの理由でバック バッファーがフロント バッファーにコピーされません。これを数時間ほど試しました。その手法では、画面上で画像が更新されることはありませんでした。

0 投票する
1 に答える
142 参照

jython - Jython でのダブルバッファリング

最近私はJythonを学び始めましたが、今はかなり単純な問題があります。アニメのクオリティを上げたい。残念ながら、アプレットにダブル バッファリングを追加する方法がわかりません。私たちを手伝ってくれますか?よろしくお願いします!

0 投票する
4 に答える
2148 参照

java - SWT でちらつきをなくす

Java アプリケーションで進行状況バーを表示するために、次のクラスを使用しています: TextProgressBar

残念ながら、それを使用するとちらつきの問題が発生します (Win 7、Java 7)。それを避けるためのヒントはありますか?ダブルバッファリングなどを使用して、再描画の頻度を減らすことはできますか? どんなヒントでも大歓迎です!