это мой вопрос ... Существует способ проверить, когда приложение прошло полноэкранный режим в DXGI (DX10/11). Для перехода на полноэкранный режим я имею в виду, что система ЗАВЕРШЕНО сменой режима. Потому что мне нужно это для моего приложения, чтобы предотвратить тупик и настроить время. (У меня многопоточный движок, а Present не находится в потоке сообщения сообщения, вызывающего тупик при изменении режима в случайном порядке)) На самом деле я заставляю его ждать 1 секунду, продолжая обрабатывать сообщения в потоке сообщений, и это работает, но я хочу что-то больше DETERMINISTIC, который говорит мне «эй, смена режима завершена, теперь вы в полноэкранном режиме». : DПроверьте, прошло ли приложение в полноэкранном режиме. (DXGI/DirectX10)
Есть идеи?
Я не могу запускать их в одном потоке, поскольку я разрешаю возможность для нескольких движков и потоков для каждого движка (один из них - поток ничьей (кстати, отлично работает в режиме DX9)). Похоже, что если я жду, когда смена режима будет завершена, DXGI больше не будет в тупике. (для wait, я все еще обрабатываю сообщения и делаю фальшивый подарок с активным флажком теста на секунду или так) – feal87
Я тем временем нашел еще одно временное решение проблемы. Планировщик задач ждет завершения всех дочерних потоков, прежде чем продолжить свою работу. Ожидание выполняется с использованием WaitHandles и вызова WaitAll(). Я накладываю тайм-аут в 1 секунду на этот вызов, если сбой вызова (1 секунда передается), он обрабатывает все сообщения Windows и затем перезапускает ожидание. (таким образом все работает отлично) – feal87