У меня есть приложение, которое создает устройство Direct3D 9 в полноэкранном режиме и затем начинает представлять. Позже, после создания первого устройства, я временно создаю новое устройство Direct3D в оконном режиме (в том же потоке, но для другого окна). Я уничтожаю это устройство сразу же, но почему-то я больше не могу использовать Alt-tab из полноэкранного приложения. Приложение просто остается на вершине, а не падает на задний план, хотя похоже, что приложение больше не в фокусе.Несколько устройств Direct3D 9 и Alt-tabbing
Если я создаю свое временное устройство как D3DDEVTYPE_NULLREF, мне вдруг удастся вывести Alt-tab. У кого-нибудь есть идея, почему это так, и если да, то как я могу создать второе временное устройство, не испорчая существующее устройство?
Я думал это тоже может испортить стили окон в полноэкранном окне. Я дам SetActiveWindow, и нет, я не использую второе устройство для какого-либо рендеринга. Мне просто нужен IDirect3DDevice9 (и его виртуальная таблица) – dreijer
Это не имело никакого отношения, к сожалению – dreijer
Ну, после некоторого более подробного описания создания нескольких устройств есть еще одна идея: второе устройство устанавливает уровень сотрудничества, несовместимый с первым. Вы можете избежать этого, указав D3DCREATE_NOWINDOWCHANGES в создание второго устройства или e xclicit вызов SetCooperativeLevel при уничтожении второго устройства. – real4x