2012-06-05 30 views
0

我是DirectX編程的新手,我對DirectX Device構造函數有這個疑問。根據微軟的文檔,我們可以創建一個設備使用使用Device.Device創建DirectX設備(Int32,DeviceType,Control,CreateFlags,PresentParameters [])構造函數(Microsoft.DirectX.Direct3D)

Device.Device(Int32,DeviceType,Control,CreateFlags,PresentParameters [])構造函數(Microsoft.DirectX.Direct3D)。

第一個參數究竟意味着什麼? MS文檔說

「適配器System.Int32 用於標識對象所代表的是哪個物理設備的序號。Device 0是默認設備。此參數中可以使用的最高值是一個小於物理總數的值設備。」

這裏我們指的是物理設備。我們是指連接到系統的顯示器?還是別的嗎?

此外,我希望我的應用程序使用特定的圖形卡,如果有多個圖形卡。有什麼辦法通過圖形卡列表枚舉?我們可以強制我們的應用程序使用特定的圖形卡嗎?如果是的話,我該怎麼做?我已經嘗試使用AdapterInformation類,但我相信對應於不連接顯卡的顯示器。

任何幫助將是非常有價值的。

謝謝。

+0

你檢查了[this](http://msdn.microsoft.com/en-us/library/windows/desktop/bb147355%28v=vs.85%29.aspx)? – dowhilefor

回答

1

第一個參數是顯示適配器的編號。在大多數情況下,適配器相當於連接到計算機的物理監視器。

通過迭代Manager.Adapters可以獲得所有顯示適配器。 Information屬性包含圖形卡特定的信息。試試看看,哪些信息對於識別顯卡是非常有用的。如果您已識別目標卡的適配器,則可以選擇其中一個。

+0

Nico,如果有多張卡片可用,我需要能夠使用特定的圖形卡。 DirectX有可能嗎?我試過Manager.Adapters,但是它對應的顯示器不是圖形卡。你能幫助我嗎? –

+0

您可以使用例如'.Information.Description',它將返回顯卡的名稱或'.Information.DeviceId',它將返回顯卡的ID。對於連接到相同圖形卡的所有顯示器,這是相同的。 –

+0

尼科,我面臨的問題是,這個API給我關於連接到系統的顯示器的信息,並且通過使用「信息」屬性,我可以獲取關於特定於該顯示器的圖形卡的信息,如果系統上存在其他圖形卡,但是當時沒有被使用。我無法獲得有關這方面的信息。可能我不是很清楚,但我想要做的是直接在圖形卡上枚舉,然後我將能夠使用我選擇的圖形卡。 –