使用目的
在 Microsoft Windows 中開發出新二維圖形 API 的主要目的包括:
緊跟 Windows 用戶所習慣的不斷提高的豐富視覺體驗。
使開發人員能夠編寫出可隨著運行代碼的 PC 的圖形處理硬體直接擴展的二維呈現代碼。
使開發人員能夠編寫出可在服務上下文中運行的二維圖形呈現代碼。
近年來,最終用戶開始希望數字型驗具備更好的視覺保真度。這種趨勢在消費電子產品中得到反映。GPS 設備、媒體播放設備、行動電話和數位相機年復一年地不斷實現更加豐富的體驗。電影、電視、視頻遊戲和網站中各種各樣的圖形內容也反映了這種趨勢。為了跟上這些變化,開發人員需要不斷豐富現有 Windows 應用程式的視覺效果。
視頻遊戲圖形和各種 Windows 體驗(如 Windows Media Center 和 Aero)的發展,推動現代 Windows PC 中的圖形處理器也得到了穩定的發展。有些 Windows 應用程式可以通過 Microsoft Direct3D 和 Windows Presentation Foundation (WPF) 來利用現代 GPU。儘管 Direct3D 可用於開發高端三維圖形應用程式,WPF 可滿足 .NET 開發人員的需要,但對於擁有基於 GDI 和 GDI+ 的呈現代碼所構成的大型現有代碼庫的開發人員或要在其基於 Direct3D 的應用程式中加入高質量二維圖形的開發人員而言,仍無法滿足其要求。
最後,對於進行企業方案和網站開發方案的開發人員而言,需要可在服務中使用的圖形 API。現有的呈現 API 側重於單個用戶會話中的客戶端呈現。在服務上下文中使用時,它們無法滿足穩定性和可伸縮性的要求。因此,需要新的 API 來解決這些問題。
開發人員客群
Direct2D 主要供以下幾類開發人員使用:
運行時要求
視覺質量
與使用 GDI 的應用程式相比,使用 Direct2D 處理圖形的應用程式可實現更高的視覺質量。Direct2D 使用每基元抗鋸齒功能,在呈現的內容中實現外觀更為平滑的曲線和直線。在呈現二維基元時,也完全支持透明度和 Alpha 混合。下圖對使用 GDI 呈現的鋸齒內容(左)和 Direct2D 呈現的抗鋸齒內容(右)進行了比較。
在需要的情況下,開發人員可以指定矢量圖形的鋸齒呈現。這些情況包括需要與硬像素邊界(如指針或標尺等 UI 元素)對齊、必須匹配輸出的 GDI 樣式或者將在呈現過程的下游通過多重採樣抗鋸齒或其他一些機制執行抗鋸齒。
互操作性
通過 GDI 與 Direct3D 的圖面級互操作性,開發人員可以更方便地集成基於 Direct2D 的呈現。主要通過 GDI、GDI+ 或 Direct3D 呈現內容的應用程式可以先使用 Direct2D 呈現其應用程式的特定區域,經過一段時間再改用這樣一種模型,即 Direct2D 主要用於執行呈現,GDI 主要用於外掛程式或傳統可擴展性。
通過 Direct2D,還可以方便地使用DirectWrite這一新的文本 API 以及Microsoft Windows 圖像處理組件 (WIC)(可能為英文網頁)的高級圖像處理功能。
有關 Direct2D 互操作性的詳細信息,請參閱 Direct2D SDK 的
互操作性部分。
小結
使用 Microsoft Direct2D,開發人員可在應用程式中構建二維圖形功能,從而實現優於 GDI 的視覺質量和可隨現代 GPU 擴展的性能特徵。通過 Direct2D 互操作性模型,開發人員可以在進行基於 GDI、GDI+ 或 Direct3D 的呈現時有選擇地遷移部分應用程式。