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