WPF Graphics

一般 Windows Form 程式底下都是 User32 跟 GDI/GDI+。而 WPF 底下幾乎全是 DirectX 與一部份的 User32,因此它能利用到硬體加速的功能。WPF 在 Windows Vista/7 上表現是比 Windows XP 好的,原因在於 Windows Vista/7 使用了 WDDM (Windows Display Driver Model)。WDDM 比 Windows XP 的 XPDM 有了更多的改進,比如說一次可以 schedule 多個 GPU operation,以及允許 video card memory 的資料 paged out 到 system memory 中。



WPF 安裝時,會針對系統 video card 做評估,比如說有無支援 pixel shader、vertex shader…等,並將 video card 等級放到一個 rendering tier 的值中。這個值在 System.Windows.Media.RenderCapability.Tier 中,範圍由 0-2,分別代表:



Rendering Tier 0:video card 不支援任何的硬體加速。這對應到 DirectX 7 以下的版本

Rendering Tier 1:video card 支援部份需要的硬體加速。對應到 DirectX 7-9 之間的版本

Rendering Tier 2:video card 完全支援所需要的硬體加速。對應到 DirectX 9 以上版本



程式可以透過這個 property 來偵測系統支援硬體加速的程度,如果在 tier 0 的話,一些使用大量 GPU 的功能應該要關掉。

留言

熱門文章