互聯網上有很多文章,但仍不清楚,所以我需要清楚硬件加速如何與WPF一起工作?硬件加速如何與WPF一起使用?
回答
您的問題沒有給出關於您在閱讀互聯網上的文章或者您想了解WPF中的硬件加速時感到困惑的細節。所以,我會嘗試給你一個一般的,但簡單的總結它是如何工作的。
爲了獲得GPU加速渲染,Windows Presentation Foundation(WPF)通過DirectX管道呈現並呈現圖形。 GPU或圖形處理單元是爲顯卡供電的芯片。實質上,硬件加速可以將WPF應用程序中的圖形從計算機的主處理器(CPU)渲染到視頻卡的處理器(GPU)中。通過使用專門用於渲染圖形而不是由CPU運行的軟件功能的視頻卡上的硬件,應用程序的圖形和用戶界面的性能得到提高或加速。最終目標是複雜的圖形例程變成渲染約束(也就是受GPU的功能限制),而不是處理器綁定(也就是說,受計算機CPU的能力和速度的限制)。這樣,CPU就可以完成其他工作,充分利用視頻卡的獨特圖形功能,並且每次用戶升級到更新,更快,更高級的視頻卡時都可以提高應用的性能(當它們變成可用)。
這當然假設你的顯卡支持硬件加速。事實上,不是所有的人做的,WPF適應這種帶有三層方法:
如果你的顯卡不不提供硬件加速的任何級別,例如,如果你正在運行一個DirectX版本低於7.0,WPF回落到0級渲染模式或軟件加速。
如果你的顯卡支持部分硬件加速,比如如果你運行的是7.0和9.0之間的DirectX版本,那麼WPF使用Tier 1渲染模式。
如果你的顯卡支持所有圖形輸出全硬件加速,對應於一個版本的DirectX等於或大於9.0,則WPF使用2級渲染模式。
This MSDN page提供了有關這些圖形渲染層次和什麼特性和功能支持硬件加速的更多信息。
我不知道你是否已經看過this blog post,但是對於我剛剛解釋的內容有了更好的理解,現在再閱讀它時可能更有意義。
但是,請記住,與WPF的交易的一部分是,您不必擔心此過程的細節和特質。該技術足夠智能,可以在任何可能的情況下使用硬件優化,並在必要時回退到基於軟件的渲染。即使在使用傳統視頻卡的舊計算機上,您的WPF應用程序仍然可以工作,儘管比新客戶端要慢。所以這可能是你不需要擔心的,除了偶然的好奇之外。
- 1. Java2D OpenGL硬件加速不起作用
- 2. 如何禁用wpf中的硬件加速?
- 3. 在ASP.NET服務器端使用WPF硬件加速投影?
- 4. Android:啓用硬件加速
- 5. 未啓用硬件加速
- 6. Android硬件加速
- 7. Honeycomb硬件加速
- 8. openssl使用cryptodev引擎的速度測試與硬件加速器一起導致虛假的計時結果
- 9. Android TextureView硬件加速與lockCanvas()
- 10. 如何理解硬件加速畫布
- 11. 硬件加速WebBrowser控件
- 12. iMX6上的Qt5:如何確保硬件加速正在使用?
- 13. 如何讓Windows Phone 7模擬器使用硬件加速?
- 14. Silverlight硬件加速圖形
- 15. QGLWidget和硬件加速?
- 16. RenderTargetBitmap硬件加速模擬
- 17. Silverlight 5硬件加速
- 18. CGPathContainsPoint()硬件是否加速?
- 19. Android ffmpeg和硬件加速
- 20. Visual Studio 2010:使用硬件圖形加速(如果可用)
- 21. 禁用android硬件加速運行時
- 22. 禁用硬件加速,向後兼容
- 23. WPF Gridsplitter不能與UseLayoutRounding一起使用
- 24. OpacityMask不能與WPF WindowsFormsHost一起使用?
- 25. WPF TextBox StringFormat不與PropertyChanged一起使用
- 26. 如何確定WPF是使用硬件還是軟件渲染?
- 27. 如何加載JSON數據以與select2插件一起使用
- 28. 與pypy一起使用sympy時不會加速
- 29. 什麼是IDataErrorInfo,它如何與WPF一起使用?
- 30. 如何理解是否使用您的應用程序硬件加速
我有一個WPF項目,我需要在用戶控件的OnRender上使用StreamGeometryContext和PolyLineTo函數渲染200,000個多邊形。當我這樣做時,即使只是拖動窗戶,整個窗戶也變得非常緩慢。所有多邊形對象和筆都凍結。我不認爲這裏正在使用硬件加速。任何建議?我的系統是Widows 7 + Visual Studio 13. – 2015-02-20 02:08:03