D3DImage теряет устройство в приложении WPF - PullRequest
1 голос
/ 18 мая 2019

Я разрабатываю приложение WPF, которое отображает сцену DirectX. Код, который генерирует сцену DirectX, не мой, и у меня нет к нему доступа. (Это не публичный кодекс, на который я могу ссылаться, ребята)

Все работало нормально, пока мне не пришлось отформатировать компьютер и установить Windows 10. (До этого у меня была Windows 7) Теперь я не вижу сцену DirectX и RenderCapability.Tier на WPF возвращает 0.

Код работает на других компьютерах (Windows 7 и Windows 10), поэтому я предполагаю, что это как-то связано с моим компьютером, но аппаратно ничего не изменилось .. Я попытался переустановить DirectX и попытался переустановить драйвер дисплея (пробовал несколько разных драйверов), но ничего не работает. Я все равно получаю RenderCapability.Tier = 0.

Код, который отображает сцену DirectX, в основном взят по этой ссылке: https://www.codeproject.com/Articles/28526/Introduction-to-D3DImage

Я не мог найти какую-либо помощь в интернете, которая действительно решила мою проблему. Любая помощь будет оценена. Спасибо!

1 Ответ

0 голосов
/ 18 мая 2019

Запустите dxdiag.exe, откройте вкладку «Дисплей» и убедитесь, что она печатает «Ускорение D3D: включено» и «Проблемы не найдены».

Также в связанном примере есть ошибка, в некоторых системах вы должны использовать запрос, чтобы дождаться завершения рендеринга, прежде чем передать текстуру в WPF. В противном случае WPF может показывать неполное отображение или вообще не отображать. Если вы выполняете рендеринг с помощью DX9, посмотрите на это , вам потребуется запрос D3DQUERYTYPE_EVENT, после завершения рендеринга выполните D3DISSUE_END, затем переведите в спящий режим, пока GetData не вернет S_OK.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...