2011-06-09 49 views
1

我正在使用System.Windows.Media.RenderCapability.Tier來獲取運行我的WPF應用程序的機器的渲染層,但我想知道它是如何獲取此信息的。我在查找這樣的信息: 它使用Com組件嗎? 它使用Direct X嗎? 它使用DDE嗎? 它使用Windows消息循環嗎? 如果在顯卡上禁用了硬件渲染,它會以不同的方式獲得結果嗎?我正在Windows XP上使用.Net3.5,如果這對答案有任何影響(如果它不同,我會對它在Windows 7上的工作方式感興趣)。WPF如何獲取機器的渲染層?

謝謝

+0

要確認,您不想知道[什麼決定層次](http://msdn.microsoft.com/zh-cn/library/system.windows.media.rendercapability.tier.aspx),但是如何信息由操作系統收集?如果是這樣,這可能是一個很難回答的問題。 [本文](http://wiert.wordpress.com/2010/05/13/netc-%E2%80%93-determining-the-hardware-acceleration-support-for-your-wpf-apps/)任何對你有用嗎? – Smudge202 2011-06-09 11:44:51

+0

是的,我想知道由CLR/OS收集哪些信息。我有一種感覺,這可能是一個很難回答的問題。 – 2011-06-09 12:40:12

+2

我想你可能會得到更好的迴應,如果你打破這個問題。你可以看到(至少隱約)是什麼決定了我鏈接的前幾篇文章中的層次。從那裏,選擇公式的一個組件(例如硬件加速),併發佈一個問題,詢問如何檢測硬件加速是否啓用。否則,你可能需要在這個問題上的獎勵,以刺激人們...... - 這是一個很大的工作 – Smudge202 2011-06-09 13:00:55

回答

2

它使用DirectX來查詢圖形硬件的功能。視頻內存和其他支持的DirectX功能(例如,通過D3DCAPS9)決定基於the rules that are described here的決定。

+0

謝謝。任何想法如何WPF/CLR與DirectX通信? – 2011-06-09 21:40:49

+0

我不能確定,但​​我懷疑像這樣的API:http://msdn.microsoft.com/en-us/library/bb174320(VS.85).aspx – Matt 2011-06-09 23:08:52

+0

這是否回答你的問題? – Matt 2011-06-10 14:35:28