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