2013-11-03 4 views
0

Прежде всего, в соответствии с dxdiag, у меня есть версия DirectX 11. Однако я прохожу через учебник (rastertek.com) и, инициализируя свое устройство directx (в частности, функцию D3D11CreateDeviceAndSwapChain), он возвращает ошибку (поэтому программа останавливается). На приведенном выше сайте есть как учебники для D11, так и D10, и, как было сказано ранее, версия D11 не будет работать, однако версия D10 работает. Поэтому я не понимаю, почему, хотя у меня есть версия DX 11, программа терпит неудачу.DirectX 11 не работает, но 10 есть?

Вот где программа возвращает ошибку:

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, который все еще не имеет значения.

Любые просвещение по этой проблеме очень ценится! Благодаря!!

+0

Насколько я знаю, dxdiag показывает только, какая версия DirectX установлена ​​в вашей системе, но это не значит, что ваше оборудование поддерживает эту версию. По-видимому, ваша видеокарта поддерживает только до DirectX 10, поэтому функция не работает – UnholySheep

+0

Это облом (и это тоже так), я сделаю этот лучший ответ, если вы опубликуете его @UnholySheep – user2948879

+0

[This] (http: // www.techpowerup.com/gpuz/) полезная для определения возможностей используемого вами графического процессора .... – Recker

ответ

0

В соответствии с запросом:
dxdiag показывает только, какая версия DirectX установлена ​​в системе, но это не значит, что аппаратное обеспечение действительно поддерживает ее.
Поэтому возможно, что dxdiag показывает DirectX 11, в то время как аппаратное обеспечение поддерживает только DirectX 10, что приведет к сбою только кода DirectX11.

Смежные вопросы