Vista DWM

公開:2008-01-08 21:06
更新:2020-02-15 04:36
カテゴリ:windows

JUCEは自前でバックバッファを持ち、そこにソフトウェアレンダリングしたものをOSのWindow領域にBltする方式をとっていた。
GDIによるハードウェア描画ではなく、自前描画だと重いのではと思っていたが、JUCEを触っていると重いとは感じない。むしろ軽い感じがする。
ソフトウェアレンダリングしても十分に実用的なパフォーマンスが出るほどCPUの能力が高いということだろうか。

とすると、描画部分をGPUに任せればもっと軽くなり、描画以外の仕事にCPUを割り振る事が可能になるのではないか?
ひょっとするとVistaはDirect3Dを利用しているとの事だが、そういうこと(GPUを駆使して描画)なのかもしれない。
調べてみると、驚くべきことがわかった。

・Vistaはアプリケーション側にオフスクリーンバッファを持っている。
・GDI描画命令はオフスクリーン描画にリダイレクトされる。すなわちソフトウェア描画される。
・DWMが適宜オフスクリーンバッファの内容をビデオメモリに転送する。

というわけで、仕組みはJUCEとほとんど同じだった!
Direct3Dの出番はどこなのだろう。。。。
アルファブレンドなどのエフェクト部分かな?