HRESULT 0x8876086a после потери переднего буфера - PullRequest
1 голос
/ 02 мая 2011

Я использую DirectX для рендеринга изображений в неуправляемом коде и D3DImage в WPF для размещения поверхности. Когда система переходит в спящий режим, вызывается событие frontBufferLost. Событие обрабатывается и все ресурсы уничтожаются и воссоздаются.

При использовании Direct3D9 в неуправляемом коде все работает правильно. После возникновения события устройство воссоздается, и рендеринг выполняется без ошибок.

Но когда я использую DirectX10 в движке, так как мне также требуется устройство Direct3D9 для очереди Surface, я пытаюсь удалить и воссоздать как 10, так и 9 устройств. На этом этапе, во время вызова GetDeviceCaps, я всегда получаю 0x8876086a, который, по моему мнению, недоступен для устройства.

Может кто-нибудь помочь мне с этой проблемой?

1 Ответ

1 голос
/ 31 августа 2011

Лучший способ обычно решить проблему такого типа - перейти на панель управления DirectX Properties, переключиться на отладочную версию DirectX, полностью развернуть уровень вывода отладки, а затем запустить приложение. Если вы посмотрите окно вывода в Visual Studio при сбое вызова GetDeviceCaps (), вы, вероятно, увидите проблему.

Удачи!

...