首先,根据dxdiag的说法,我有DirectX版本11。然而,我正在学习一个教程(rastertek.com),在初始化directx设备(特别是D3D11CreateDeviceAndSwapChain函数)时,它返回一个错误(因此程序被停止)。在上面的站点上,有关于D11和D10的教程,正如前面所说的,D11版本不能工作,但是D10版本是工作的。所以我不明白为什么即使我有don 11,程序也会失败。
下面是程序返回错误的地方:
result = D3D11CreateDeviceAndSwapChain(NULL, D3D_DRIVER_TYPE_HARDWARE, NULL, 0, &featureLevel, 1,
D3D11_SDK_VERSION, &swapChainDesc, &m_swapChain, &m_device, NULL, &m_deviceContext);在http://www.rastertek.com/dx11tut03.html中,您可以看到所有这些变量的来源,页面向下的部分略多于1/3。
我在其他论坛上看到了这个函数的其他问题(他们所做的对我没有帮助),以及msdn,它说如果第一个参数是非空的,那么将第二个参数设置为D3D_DRIVER_TYPE_UNKNOWN,这仍然没有什么区别。
任何关于这个问题的启示都是非常感谢的!谢谢!!
发布于 2013-11-03 00:16:22
应要求:
dxdiag只显示系统上安装了哪个版本的DirectX,但这并不意味着硬件确实支持它。
因此,dxdiag可能显示DirectX 11,而硬件只支持DirectX 10,这将导致仅DirectX11代码失败。
https://stackoverflow.com/questions/19748347
复制相似问题