WPF基礎篇(1)-WPF系列征程

什麼是WPF?

WPF:windows 呈現基礎[Windows presentation Foundation]是一個用於windows平臺的全新的圖形顯示系統。

什麼是Windows圖形?

標準的Windows應用程序依賴於Windows操作系統的如下兩個部分來創建用戶界面:

User32 : 爲許多元素提供了類似的窗口外觀,如:窗口。按鈕,文本框等。

GDI/GDI+ : 爲渲染簡單形狀,文本以及圖像提供繪圖支持,但是非常複雜(通常性能較差)

WPF的渲染級別

WPF訪問顯卡時,它會考慮許多因素,包括以下幾方面:

1、顯卡上的RAM的數量:圖形硬件中的RAM數量決定了可用於合成圖形的緩衝區的大小和數量。

2、像素着色器:像素着色器計算效果的圖形處理功能。每個像素幀可能有數百萬像素需要處理,具體取取決於所顯示的圖形的分辨率。

3、頂點着色器:頂點着色器是對對象的頂點數據執行數學運算的圖形處理功能

4、多紋理支持:多紋理支持是指在對三維圖形對象執行混合操作期間應用兩個或更多個不同紋理的功能。多紋理支持的程度由圖形硬件中的多紋理單元數決定。

根據這些細節,WPF會指定一個渲染級別值。

WPF提供了三個渲染級別,如下所示:

Rendering Tier[呈現層] 0:顯卡將不提供任何硬件加速功能。所有圖形功能都使用軟件加速。DirectX版本級別低於9.0

Rendering Tier[呈現層] 1:顯卡提供部分圖形硬件加速功能。DirectX版本級別高於或等於9.0

Rendering Tier[呈現層] 2:顯卡提供大多數圖形硬件加速功能。DirectX版本級別高於或等於9.0

在某些情況下,可以通過程序來檢查當前顯卡的渲染級別,從而可以有選擇性的爲功能較差的顯卡禁用一些圖形特性。檢查渲染級別需要使用System.Windows.Media.RenderCapability類的靜態屬性,爲了通過Tier屬性檢查顯卡的WPF渲染級別值,需要將它移動16位。

            string strTier = string.Empty;
            int renderingTier = (RenderCapability.Tier >> 16);
            strTier = "此電腦渲染等級爲:" + renderingTier.ToString();
            MessageBox.Show(strTier);

 下表顯示呈現層 1 和呈現層 2 的圖形硬件要求差異:

下面的功能是呈現層 1 和呈現層 2 的硬件加速功能:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章