2011-08-08 48 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