DirectX 11 ошибки эквивалентны DirectX 9 - PullRequest
0 голосов
/ 18 февраля 2019

Мне нужна ссылка для поиска эквивалентных кодов ошибок для DirectX 11, которые использовались в реализациях DirectX 9, например:

D3DERR_INVALIDDEVICE
D3DERR_DRIVERINVALIDCALL
D3DERR_TOOMANYOPERATIONS
D3DERR_DEVICELOST
D3DERR_DEVICENOTRESET
D3DERR_NOTAVAILABLE

Я обнаружил, что winerror.h содержит все коды ошибок DXGI, но не смогнайти эквивалентный код для вышеупомянутых ошибок в DiretcX 9. Пожалуйста, помогите мне найти ссылку или вики, чтобы найти эквивалентный код ошибки.

1 Ответ

0 голосов
/ 21 февраля 2019

DXGI-версии Direct3D не имеют сценариев 'потерянного устройства', только TDR и устройство удалено , поэтому D3DERR_DEVICELOST, D3DERR_DEVICENOTRESET, D3DERR_DRIVERINTERNALERRORD3DERR_NOTAVAILABLE случаев никогда не происходит с Direct3D 10 или более поздней версии.

Как указано в Документах Microsoft , вы никогда не получите D3DERR_DRIVERINVALIDCALL.

D3DERR_TOOMANYOPERATIONS, D3DERR_CONFLICTINGRENDERSTATE, D3DERR_CONFLICTINGTEXTUREFILTER и т. Д. Применяется к устаревшему конвейеру с фиксированными функциями, который не существует для Direct3D 10 или более поздней версии.

Ряд таких более старых ошибок, таких как D3DERR_UNSUPPORTEDALPHAARG, D3DERR_UNSUPPORTEDALPHAOPERATION и т. Д.были связаны со старыми унаследованными «заглавными буквами», которые не соответствуют принципам управления Direct3D 10 и более поздними версиями.Вместо этого он использует аппаратные уровни Direct3D .

В случаях, когда Direct3D9 вернет D3DERR_INVALIDDEVICE, вы, вероятно, получите E_INVALIDARG сейчас.

Возможно, вы захотитепосмотреть это сообщение в блоге

...