2011-08-08 52 views
3

我在使用D3D10CreateDeviceAndSwapChain創建有效的DirectX 10設備和交換鏈時遇到了一些問題。我認爲這可能是我的窗口創建出現問題,因爲它說提供的SwapChainDesc中的OutputWindow是未使用的= ??? (或隨機int值)創建DirectX 10設備和交換鏈的問題

這個問題一直強調我出去,因爲我似乎無法找出什麼是錯的項目代碼

我知道它在線路193 CDirect3D.cpp失敗at

result = D3D10CreateDeviceAndSwapChain(NULL, D3D10_DRIVER_TYPE_HARDWARE, NULL, 0, D3D10_SDK_VERSION, &swapChainDesc, &this->m_swapChain, &this->m_device); 

如果有人能看看代碼,我將不勝感激。我上傳的http://dl.dropbox.com/u/3605545/files/LearningEngine.zip

的項目和它的來源(不是一個巨大的代碼庫,只有4類到目前爲止)

該項目是在VS2010,我從2010年6月使用的DirectX SDK中

+0

返回哪些代碼? 'result'中的錯誤應該指向正確的方向:http://msdn.microsoft.com/en-us/library/bb205278(v=vs.85).aspx – AJG85

+0

它返回E_INVALIDARG – SorenA

+0

我正在嘗試代碼從http://www.rastertek.com/dx10tut03.html和側提供的代碼有一個NULL作爲適配器傳遞,但它的工作 – SorenA

回答

3

我發現了問題,我輸錯這一行:

swapChainDesc.BufferDesc.Format = DXGI_FORMAT_B8G8R8A8_UNORM; 

本來應該是:

swapChainDesc.BufferDesc.Format = DXGI_FORMAT_R8G8B8A8_UNORM; 
+1

+1:爲了好眼睛,因爲在看到差異之前我看了大約4次。 – AJG85