Проверьте, когда приложение перейдет в полноэкранный режим.(DXGI/DirectX10)

StackOverflow https://stackoverflow.com/questions/1873877

Вопрос

это мой вопрос...Существует способ проверить, когда приложение переключилось на полноэкранный режим в DXGI (DX10 / 11).Переход на полноэкранный режим я имею в виду, что система ЗАВЕРШИЛА смену режима.Потому что мне это нужно для моего приложения, чтобы предотвратить взаимоблокировку и отрегулировать время.(У меня многопоточный движок, и настоящее время отсутствует в потоке перекачки сообщений, вызывая взаимоблокировку в режиме-меняю случайным образом)) На самом деле я заставляю его ждать 1 секунду, продолжая обрабатывать сообщения в потоке перекачки сообщений, и это работает, но я хочу что-то более ДЕТЕРМИНИРОВАННОЕ, что говорило бы мне "эй, смена режима завершена, теперь вы находитесь в полноэкранном режиме".:D

Есть какие-нибудь идеи?

Это было полезно?

Решение

Есть ли какая-либо причина, по которой вы не можете запускать потоки рендеринга и перекачки сообщений как один и тот же поток?

Согласно документам, нет ничего, что говорило бы о том, что изменение завершено.

Однако, как ни странно, DXGI полагается на получение ответов от внутренних вызовов SendMessage (которые происходят через перекачку сообщений в многопоточной среде).Так что я не понимаю, как задержка отправки сообщений устраняет проблемы.Все, что он сделает, это заставит DXGI подождать лишнюю секунду, прежде чем продолжить делать свое дело.Тупиковая блокировка обычно подразумевает, что вы делаете что-то, из-за чего перекачка сообщений блокируется в ожидании, пока поток рендеринга что-то сделает.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top