DWM が無効になっている場合、Windows 7 のオフスクリーン フロント バッファーはどうなりますか?

DWM が無効になっている場合、Windows 7 のオフスクリーン フロント バッファーはどうなりますか?

これら 2 つの記事は、オフスクリーン フロント バッファーが Windows Vista/7 ドライバー モデル (WDDM) の一部であることを示しています。

http://www.opengl.org/pipeline/article/vol003_7/

オフスクリーン フロント バッファーはドライバー モデル自体の要件であるため、DWM をオフにしてもこれらの問題は解決されない可能性があります。

リンク

デスクトップ ウィンドウ マネージャー (DWM) がフロント バッファーを合成して画面にレンダリングすることは広く知られています。

私の質問はこれです:DWMが有効かどうかに関係なくオフスクリーンフロントバッファが使用される場合、DWMが有効になっているときに合成操作を実行するのは何ですか?無効?

また、DWM が無効になっている場合の Windows 7 の動作に関する参考資料を探しています。XP のスタッキング ウィンドウ モデルにフォールバックするだけでしょうか?

答え1

スタッキングウィンドウモデルはなくなりました。Vista以降では複合デスクトップモデルを使用します。

Vista が初めて登場したとき、これらの議論があったことを覚えています。最善を尽くします。これらのトピックは、Windows 7 ではなく Vista で Google 検索してください。

デスクトップ ウィンドウ マネージャー (DWM) が、画面へのレンダリングのためにフロント バッファーを合成することは広く知られています。

私の質問は次のとおりです。DWM が有効かどうかに関係なく、オフスクリーン フロント バッファーが使用される場合、DWM が無効になっているときにコンポジションはどのような動作をしますか。

自分で確認してみてください。Aero をオフにして Basic に切り替えます。これで DWM なしで実行できます。DWM がなくなります。しかし、グラフィック カードのメモリに書き込もうとするとどうなるでしょうか。経験豊富なプログラマーでない限り、ほとんどの場合、オフスクリーン バッファにリダイレクトされます。その場合、この質問をすることはないはずです。そして、何が起こるかはご存知でしょう。

オフスクリーンのフロントバッファがまだ使用されている理由は、ドライバーがフロントバッファを制御できなくなったためです。フロントバッファは仮想化されています。これはGDIに関係しています。そしてDirectX。仮想メモリ マネージャーが必要なのは、物理メモリに直接書き込むことができなくなったためです。そのため、オフ スクリーン バッファが必要になります。

私は WPF を学習しているときにこのことのほとんどを学びました。なぜなら、DWM は多くの点で巨大な WPF アプリケーションにすぎないからです。どちらも、それぞれのワークスペースを構成するために DirectX と MIL を使用します。Vista と WPF に関する TechNet の記事をいくつか読んでみることをお勧めします。Windows 7 での DVM と DDK の変更は軽微であり、あなたの質問にはあまり関係ありません。

すべてが理解できたと思います。

関連情報