問題タブ [doublebuffered]

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 投票する
3 に答える
2198 参照

directx - DirectXのちらつきビデオ

了解しました。正常に機能しているように見えるカスタムVMR9アロケータ/プレゼンターを作成しました。ただし、ビデオフレームをアロケータ/プレゼンターサーフェスからアプリケーションサーフェスにコピーしようとすると、ビデオがちらつくように見えます。オーディオの再生は問題ないので、マシンがダウンしているなどの問題ではないと確信しています。これは、レンダリングループにあるコードです。

ただし、これに変更すると(バッファのクリアをコメントアウト)

このちらつきは消えます。これはどういうわけか悪い形/ハックであり、それが解決するよりも多くの問題を引き起こす可能性があるのではないかと心配しています。この分野での経験はありますか?より良い解決策はありますか?

ありがとう!

0 投票する
5 に答える
1878 参照

c++ - この場合、ダブルバッファを使用するにはどうすればよいですか?

3つのコントロールA、B、Cがあるとします。これらはすべてCDialogから継承され、Aはメインダイアログ、AにはB、BにはCが含まれます。マウスを使用するたびに、C、B、Cが一緒に移動します。 。

これは画像です:http://img507.imageshack.us/img507/7039/31709956.jpg

これにより、BとCが再描画されることがわかっています。ちらつきの原因になります。

そして私の質問は、これら2つのダイアログBとCをダブルバッファリングする方法があるかどうかです。

XPとビスタには、役立つ属性WS_EX_COMPOSITEDがあることは知っていますが、これは使いたくありません。

誰かがmemDCの使用を提案するかもしれませんが、私の問題は、Bのondraw関数とCのondraw関数のアクションをバッファーにマージするにはどうすればよいですか?

誰かが私が言ったことを知っていることを願っています。

前もって感謝します!

0 投票する
3 に答える
1180 参照

user-interface - ウィンドウのレンダリングを停止して後で再開するにはどうすればよいですか?

サーバーからのデータの受信とレンダリングが完了するまで、ウィンドウが更新されないようにしたいのですが。WM_PAINTイベントをフックすることはできますか、それともWin32APIメソッドを呼び出して、ウィンドウが更新されないようにし、後でフリーズを解除することをお勧めしますか?

詳細: C#で記述されたMMCスナップインのコンテキストでは、アプリケーションは厄介なちらつきと二重ソート動作に悩まされています。MMCのlistViewsを使用していますが、sortイベントをサブスクライブしているためです。MMCは独自の魔法を実行し、表示されているページを並べ替えます(これをオーバーライドすることはできません)。サーバーから応答を受信すると、listViewを再度変更します。各行の変更は順番に行われ、beginUpdateなどはありません(AFAIK)。

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

opengl - WGL: ダブルバッファリングなし + マルチサンプリング = FAIL?

私は通常、これらの引数を使用してピクセル形式を作成しwglChoosePixelFormatARB()ます (特に):

つまり、ダブル バッファリングと x4 マルチサンプリングです。これはうまくいきます。
しかし、ダブルバッファリングをオフにしようとすると:

への呼び出しがwglChoosePixelFormatARB()失敗します (または、何も作成されなかったことを示します)
マルチサンプリングを効果的にオフにすると:

また元気に働いています。

非ダブルバッファピクセルフォーマットがマルチサンプリングで動作するのを妨げる固有のものはありますか?

ダブル バッファリングをオフにする理由は、制約のないフレーム レートを実現するためです。ダブル バッファリングを使用すると、フレーム レートは最大 60 FPS になります (このラップトップ LCD は 60 Hz で動作します)。しかし、ダブル バッファリングをオフにすると、最大 1500 FPS を得ることができます。ダブルバッファリングをオンにしてこれを達成する方法はありますか?

0 投票する
3 に答える
4488 参照

java - Java2D でダブルバッファリングを行うにはどうすればよいですか?

画面上で Java2D を使用して多数のプリミティブを描画していますが、ティアリングやちらつきが多く発生します。

ダブルバッファリングを有効/使用して、画面外に描画してから全体を表示するにはどうすればよいですか?

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

c# - C#、OnPaint のオーバーライド: ダブル バッファーを使用したアルファ透明度

C#を使用した.Net Compact Framework 2.0 SP2を使用して、 Windows Mobile 5.0以降のアプリケーションを開発しています。

フォーム全体をアルファ透明度で塗りつぶすビットマップを描画するカスタム メッセージ ボックスの OnPaint メソッドと、半透明の背景にボタンとメッセージを含むグラデーション ボックスをオーバーライドしています。

私はそれをテストしていますが、とても遅いので、ダブルバッファを使用します。グラデーション ボックスとテストを描画するためにダブル バッファーを使用できますが、アルファ透明度の背景ビットマップでダブル バッファーを使用すると、アルファ透明度が描画されません。したがって、グラデーションボックスとメッセージとボタンを使用したダブルバッファのみを行います。背景透明ビットマップは、e.Graphics に直接描画されます。

e.Graphics をビットマップに保存して、すべての作業を行い、OnPaint メソッドの描画を e.Graphics に描画して、以前に保存したこのビットマップを終了できるかどうか疑問に思っています。

これは私のコードです:

bmpOffscreen:ダブル バッファのビットマップ。

たぶん、フォームのスナップショップを bmpOffscreen に取得し、その上に半透明の背景、グラデーション ボックス、およびテキストを描画できます。

要約: ダブル バッファでアルファ ブレンドを使用したい

何かアドバイス?

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

.net - ControlStyles.DoubleBuffer と ControlStyles.OptimizedDoubleBuffer の比較

ControlStyles.DoubleBufferControlStyles.OptimizedDoubleBufferの違いは何ですか?

ControlStyles.DoubleBufferは Intellisense ドロップダウンに表示されませんが、ControlStyles.OptimizedDoubleBufferは実際にリストされています。

MSDN のドキュメントでは、違いがすぐにはわかりません (少なくとも私には)。

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

java - Java パネルのダブル バッファリング

誰かが私を正しい方向に向けることができるかどうか疑問に思いました.私はピンポンゲームを開発しましたが、ちらつきのためにダブルバッファリングが必要です. 私はここの投稿のいくつかを試して動作させようとしましたが、私はまだスイング awt suff の初心者です。

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

java - JFrameでのBufferStrategyとDIYダブルバッファリング

これまで、Imageを作成してダブルバッファリングを行い、関連付けられたGraphicsオブジェクトを使用してそのImageに必要なものを描画してから、paintメソッドのGraphicsオブジェクトを使用してそのImageを画面に描画しました。最近、BufferStrategyクラスとその使用法について学びました。私は2つの方法の長所と短所は何であるか疑問に思いました。

編集:私は私の質問をあまり明確にしたとは思わない。DIYの方法とBufferStrategyの両方の長所と短所、そしてもしあれば、どちらを使うべきかを知りたかったのです。

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

opengl - VSync=on のノンブロッキング SwapBuffers()

VSync が有効になっている場合でも、ノンブロッキング SwapBuffers() を作成するポータブルな方法を探しています。
つまり、イベントで通知したり、次の VSync までの遅延を知ることは可能ですか?