問題タブ [flicker]

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

windows-7 - ちらつきUIの問題-Windows7のDWMがSetWindowPosを呼び出すとすぐに更新することを決定する原因は何ですか?

カスタムのタブ付きスタイルコントロールがあり、タブをクリックしたときに関連するページを表示または非表示にすることで内部的に機能します。

タブをクリックしたときに発生する基本的な順序は次のとおりです。

  1. 関連するページを前面に表示
  2. 関連するページを表示します(適切なフラグを指定してSetWindowPosを呼び出します)
  3. カバーしたばかりの古いページを非表示にする
  4. ウィンドウを塗り直します

一部のタブはDirectXでレンダリングされます。Windows XPでは、すべてが正常に機能し、タブを切り替えてもちらつきはありません。ただし、Windows 7(またはVista)では、手順2でSetWindowPosを呼び出すとウィンドウが再描画され、手順4の前に初期化されていないピクセルが点滅します。通常、アプリの実行が開始される前にデスクトップにあったものは何でもかまいません。

これはDirectXページでのみ発生しますが、これを引き起こすのはDirectXについてはわかりません。ページ間には他にも違いがあり、それは明らかなパターンでした。これが本当の手がかりなのか、赤いニシンなのかはわかりません。

GDIページはステップ4まで再描画されません。コードをステップスルーして確認しました。DWMがステップ2で正しくキャッシュされたビットマップを使用しているだけでなく、実際にはステップ4まで再描画されません。

これが背景情報ですが、現時点ではこの特定の問題に取り組む方法がわからないため、私の質問はより一般的です。

SetWindowPosが再描画するかどうかの決定に影響を与える可能性のあるすべてのものは何ですか?

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

android - child.setvisibility(View.Visible) を設定すると、Android ホーム画面のような効果がちらつく問題

ビューフリッパーでさまざまなレイアウトをめくるためのサンプル アプリケーションを作成しました。

XMLは基本的に(疑似コード)

そして Java コードでは、

上記の疑似コードは、画面上でドラッグするときに (ホーム画面のように) viewflipper 内で線形レイアウトをうまく移動します。

問題は、nextScreen.setVisibility(View.VISIBLE) を実行するときです。次の画面が表示されるように設定されると、適切な位置に移動する前に画面上でちらつきます。(0の位置で見えるようになっていると思います。)

画面がちらつくことなく次の画面を読み込む方法はありますか? ちらつきがないように、画面の外にロード(表示)したい。

お時間をいただき、ありがとうございました。

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

android - SurfaceViewのちらつき/ティアリング

私は自分の問題を回避する方法を見つけようとしています。http://groups.google.com/group/android-developers/browse_thread/thread/a2aac88a08cb56c2/b7dff4ba388cd664?lnk=gst&q=SurfaceView#b7dff4ba388cd664を読んだことがありますが、私が知る限り、それは一種の「タフな運」の答え。だからここに私の問題があります:

通常の方法(lock / unlockAndPost)でSurfaceViewを使用して、サーフェスが変更されるたびにゲームの背景のビットマップを描画し(方向など)、一連の移動する円(半径が最大30)をレンダリングしています。約25.f)。これらの円の位置のx、yデータはサーバーからのものであり、すべて正常に実行されます。すべての円オブジェクトはリストに保存され、この更新が同期されるように注意してそれらの位置が更新されます。ただし、これらの円を画面に描画すると(canvas.lock()中)、ほとんどの場合、うまくレンダリングされますが、フレームの一部の円が一時的に裂けたりちらついたりすることがあります(たとえば、数秒に1回)。円の数は常に一定であるため、問題はなく、円のリストが同時に変更されることはありません(前述のとおり、同期されています)。これらすべての円を各レンダリングループのビットマップに描画し、そのビットマップをメインキャンバスに描画してみました。これはパフォーマンスにさらに影響を与えるようです(メインキャンバスに直接円を描く場合は〜30FPSではなく〜13FPS)。情報が少し漠然としている場合は申し訳ありませんが(会社を幸せに保つために:p)、誰かが私に手がかりを与えることができるかどうか疑問に思っていましたか?それとも私は運が悪かったのですか。サーバーからの測位データはリアルタイムデータであり、レンダリングがこれらのリアルタイムの位置を反映することが非常に重要であることに注意する必要があります。情報が少し漠然としている場合は申し訳ありませんが(会社を幸せに保つために:p)、誰かが私に手がかりを与えることができるかどうか疑問に思っていましたか?それとも私は運が悪かったのですか。サーバーからの測位データはリアルタイムデータであり、レンダリングがこれらのリアルタイムの位置を反映することが非常に重要であることに注意する必要があります。情報が少し漠然としている場合は申し訳ありませんが(会社を幸せに保つために:p)、誰かが私に手がかりを与えることができるかどうか疑問に思っていましたか?それとも私は運が悪かったのですか。サーバーからの測位データはリアルタイムデータであり、レンダリングがこれらのリアルタイムの位置を反映することが非常に重要であることに注意する必要があります。

助けてくれてありがとう!クリス

編集:

けっこうだ。これがレンダリングスレッドからのrun()です。

かなり標準的なもの(月着陸船のほぼカーボンコピー:p)

非常に簡単にフォローできます。向きが変わった場合は背景のビットマップを再描画して、レンダリングスレッドを開始してください。

そして最後に:

みんなありがとう。クリス

0 投票する
0 に答える
1309 参照

android - Android ビューフリッパーのちらつき

複数のビューが動的に追加された ViewFlipper があります。ビューで down、move、up イベントを取得するために onTouchEvent (および onInterceptTouchEvent) をオーバーライドします。

これで、スワイプの開始時に小さなちらつき (他のビューの 1 つが一瞬上に表示される) があることを除いて、すべて正常に動作します。これは、最初のスワイプが完了した後にのみ発生します。

Android のホーム画面アプリのソース コードを調べたところ、非常に役に立ちましたが、ViewFlipper を使用していないため、少し異なります。

誰かが同じ問題に遭遇しましたか?

ありがとう!

0 投票する
0 に答える
268 参照

c# - C# ビデオのちらつき

VLC インターフェイスを使用してビデオを表示するコードに問題があります。また、「フォームの透明度」機能を使用して、そのビデオの上に (フ​​ルスクリーンで) オーバーレイを表示しています。

これは私の Windows 7 PC では問題ありませんが、XP マシンではちらつきます。

これを解決するのを手伝ってくれるなら、助けていただければ幸いです。UDP:// ストリームを表示する必要があるため、VLC を使用する必要がありますが、同時に、ビデオの上にプログラムの情報を表示する必要があります...

0 投票する
7 に答える
9803 参照

c# - winforms ラベルのちらつき

ひどくちらつくラベル コントロールに問題があります。

以下は、問題を再現するためのコードです。

これを解決するには?

更新: 前のケース (フォームにラベルが直接含まれている) の解決策は、form.DoubleBuffered = true にすることでした。しかし、これは一般的な解決策ではありません。たとえば、SplitContainer 内のラベルの場合はどうすればよいですか? これは私の本当のケースです。

更新されたコード:

DoubleBufferedLabel.cs:

DoubleBufferedSplitContainer.cs:

Form1.cs:

Form1.Designer.cs:

Program.cs:

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

delphi - DelphiでPageControlのちらつきを減らすにはどうすればよいですか?

Delphi 2009で、フォームのサイズ変更中に発生するPageControlのちらつきは、そのDoubleBufferedプロパティをtrueに設定することで減らすことができることを発見しました。

ただし、PageControlタブシートにコントロールを追加すると、DoubleBufferedプロパティの設定に関係なくちらつきます。また、ランタイムテーマを有効にした場合と無効にした場合も試してみました。

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

java - 更新中に Java が JPanel のコンテンツを再描画しないようにする

多くの子コンポーネントを含む JPanel があります。親JPanelに新しいコンポーネントを更新/追加している間、再描画を防ぎたいのですが、どうすればこれを達成できますか?

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

c++ - WS_EX_COMPOSITEDによるちらつきのないタブコントロール

WTL8.1を使用して開発されたWindowsXPSP3用のVS2008C++アプリケーションがあります。私のアプリケーションには、アプリケーションの境界線のサイズが変更されたときにちらつくタブコントロールが含まれています。

私のウィンドウ階層は次のようになります。

私が試している解決策は、CFrameWindowImpl派生クラスにWS_EX_COMPOSITEDスタイルを使用させ、その下のすべてのウィンドウにスタイルを使用させることWS_EX_TRANSPARENTです。残念ながら、これにより、タブコントロールボタンが空の黒いバーとして表示され、構成ビューのコントロールがまったく表示されなくなります。

WS_EX_COMPOSITEDWS_EX_TRANSPARENTスタイルを削除すると、フォームは正しく表示されますが、CTabViewサイズを変更すると、その下のすべてがひどくちらつきます。

ちらつきをなくし、コントロールを適切に描画するには、何を変更する必要がありますか?

ありがとう、PaulH


編集:動作しました。WS_EX_TRANSPARENTMarkRansomの提案に従ってすべてのスタイルを削除しました。(内に含まれる)のみWS_EX_COMPOSITEDスタイルを配置します。他のコントロールは、必要に応じてを介してダブルバッファリングを取得します。CTabCtrlCTabViewWTL::CDoubleBufferImpl<>

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

c# - 背景ペイントを無効にする

私はビジュアルスタジオ2008を使用しています

処理された画像を表示するコントロールがあります。処理パラメータが変更されるたびに、この画像を更新したいと思いますが、ちらつきはありません。ペイントする前にウィンドウが領域を非表示にするのを防ぐことができれば、ちらつきはほとんどなくなるはずです.

質問は、これを行う方法ですか?

次のようなもの: this.SetStyle(ControlStyles.AllPaintingInWmPaint, true); それを行う必要がありますが、それには TableLayoutPanel コントロールをサブクラス化する必要があり (これを行うのに 1 時間費やしました)、達成したことでは効果がありませんでした。

コントロールの背景描画をオフにする簡単な方法はありますか?