WPF3.5の新機能①レイヤーウィンドウの高速化
Visual Studio 2008 のリリースと同時に .NET Framework 3.5 もリリースされました。これに伴い Windows Presentation Foundation にもいくつかの新機能が追加されました。その新機能を紹介していきます。
まず、レイヤーウィンドウがハードウェア レンダリングされるようになりました。レイヤーウィンドウというのはフレーム枠なして背景を透明にして描画するものです。WPF 3.0 ではレイヤーウィンドウはソフトウェア レンダリングだったため、CPU負荷が高く動作が遅くて使い出がよくありませんでした。しかし、WPF 3.5 ではレイヤーウィンドウがハードウェア レンダリングになったので、かなりサクサク動くようになりました。
特筆すべきは、WPF 3.0 でビルドしたアプリもこの恩恵を受けることです。つまり、WPF 3.0 でビルドしたレイヤーウィンドウのアプリを WPF 3.5 ランタイムの環境(つまり Vista SP1 など)で動かせれば、ハードウェア レンダリングで高速に動作するようになります。
私のテスト結果では、以前紹介したことのあるレイヤーウィンドウでティーポットがくるくる回るアプリが、Windows Vista の新しいデスクトップ (Core2 2.4GHz GeForce8800) では 16fps だったのが、Windows Vista SP1 RC1 の少し前のノートPC (PentiumM 2.2GHz, Mobility Radeon X800XT) で59fps になりました。Perforator の結果を紹介します、FrameRateを見てください。

Widows Vista (WPF 3.0) 上での結果 16fps

Windows Vista SP1 RC1 (WPF3.5) 上での結果 59pfs
マイクロソフト㈱エバンジェリスト。北海道大学理学部物理学科卒。リアルタイム3Dグラフィックスを専門とし、グラフィックスやシェーダに関する技術文章を執筆・講演。 DirectX SDK日本語ドキュメントの開発に携わるとともに、Windows Presentation Foundation プログラミング(オーム社)、Game Programming Gemsシリーズ、リアルタイム レンダリング第2版(ボーンデジタル)、Texturing & Modeling, A Procedural Approach などを翻訳・監修、XAMLプログラミング(ソフトバンク クリエイティブ)を執筆。趣味は薪割り。