共用方式為


顯示驅動程式的特殊效果

Windows 2000 和更新版本的作業系統版本支援下列特殊效果:

  • 如果顯示硬體支援 Alpha 混合,則顯示驅動程式可以實作 DrvAlphaBlend

  • 如果顯示硬體支援漸層填滿,顯示驅動程式應該實 作 DrvGradientFill

Alpha 混合

Microsoft Windows 2000 (及更新版本) 殼層會使用 Alpha 混合廣泛地執行混合和混合動畫Alpha 游標等作業。 因為 Alpha 混合作業需要從來源和目的地表面讀取,所以當來源或目的地位於視訊記憶體時,標點符號對 GDI 會非常慢。 因此,驅動程式中的硬體加速會產生更順暢的動畫,並改善整體系統效能。

驅動程式應該實作 DrvAlphaBlend ,以使用常數 Alpha 從相容的點陣圖 傳輸 ,以及從具有每圖元 Alpha 值的 32 bpp BGRA 系統記憶體介面。 DrvAlphaBlend 可以使用 三角形紋理填滿來實作,前提是不會看到接合。

DrvAlphaBlend所產生的最差大小寫錯誤不應超過每個色彩通道一 (1) 。 牽涉到延展時,來源應該是 COLORONCOLOR 延展 (在混合之前參閱 Windows SDK 檔) ;最差情況錯誤不應超過每個色彩色板的一 (1) ,並結合最差大小寫的延展錯誤。

在 Alpha 混合與延展結合的情況下,WDK 中會以下列方式評估顯示驅動程式的 DrvAlphaBlend 實作:

  1. 測試會呼叫顯示驅動程式的 DrvAlphaBlend,產生 Alpha 混合和延展的矩形。

  2. 測試會產生目的地矩形,使用與 DrvAlphaBlend呼叫中使用的相同來源矩形。

  3. 針對步驟 2 目的地矩形中的每個圖元 P,測試會模擬反向延展,以判斷來源矩形中對應的圖元,再延展。 測試會將容錯值套用至反向延展,以因應驅動程式的不同延展實作。 然後,測試會計算應該套用至該圖元的 Alpha 混合。

    因為四個可能的圖元 (來源矩形中以圖元 P) 為中心之 3 X 3 圖元方塊的角落的任何一個,所以可以在目的地矩形中產生圖元 P,測試必須比較每個角落圖元的色彩值,以及 DrvAlphaBlend所產生矩形中對應位置圖元的色彩值。

最差大小寫的延展錯誤是任何對應角落圖元配對之間的色彩值最大差異,其中其中一個位於 DrvAlphaBlend產生的矩形上,另一個則位於測試產生的來源矩形上。

漸層填滿

Windows 2000 (及更新版本) Shell 在所有標題橫條上使用漸層填滿

DrvGradientFill所產生的結果取決於每個圖元的位數,而且必須滿足下列指導方針:

24-bpp 或 32-bpp 表面

  • 值必須以單調方式在所有降級方向中增加或減少。

  • 針對矩形漸層:當 ulMode == GRADIENT_FILL_RECT_H時,每個垂直線都必須是單一色彩。 當 ulMode == GRADIENT_FILL_RECT_V時,每個水準橫條都必須是單一色彩。

  • 任何通道中的最差情況錯誤不能超過 ±1。

  • 區域的端點必須完全符合。

15-bpp 或 16-bpp 表面

任何通道中的最差情況錯誤不能超過 ±15。

1-bpp 到 8-bpp 表面

這些表面的漸層填滿中不允許發生任何錯誤。 針對 8-bpp 表面,GDI 不會呼叫驅動程式的 DrvGradientFill 函式。

請注意,在所有介面中,裁剪不會影響結果。