В настоящее время я переношу некоторый унаследованный код от Dx9 до Dx11. Я немного новичок с материалом DirectX, поэтому, пожалуйста, со мной. Мне удалось перенести создание D3D-устройства и контекста, но есть часть устаревшего кода, который должен поддерживаться, и я не могу понять, как его перенести на Dx11.Ручки монитора DirectX11
Код в вопросе использует функции Win32 для того, чтобы завладеть Ручка монитора так:
DEVMODE dm = { 0 };
dm.dmSize = sizeof(DEVMODE);
EnumDisplaySettings("\\\\.\\DISPLAY3", ENUM_CURRENT_SETTINGS, &dm);
POINT p = { dm.dmPosition.x, dm.dmPosition.y };
HMONITOR hMonitorGDI = MonitorFromPoint(p, MONITOR_DEFAULTTONEAREST);
Затем петли через адаптер мониторов, подключенных к D3D9 устройства, как так и выглядит для согласования ручки:
unsigned int uiAdapterCount = m_p_d3d9->GetAdapterCount();
for (unsigned int i = 0; i < uiAdapterCount; ++i) {
HMONITOR hMonitorD3D = m_p_d3d9->GetAdapterMonitor(i);
if (hMonitorD3D == hMonitorGDI)
{
p_is->uiAdapter = i;
break;
}
}
Я не могу из-за любви ко мне разобраться, как сделать эквивалент в Dx11. Я узнал, как создать DXGIFactory, и через это получить информацию о адаптере и выходе (мониторе), но, похоже, я ничего не могу найти в отношении получения дескриптора монитора в Dx11.
Любая помощь или указатели в правильном направлении были бы высоко оценены. Cheers
Не могу поверить, что я выполнил все эти шаги, прежде чем задавать этот вопрос и пропустил переменную Monitor. Какой тупик. Приветствия за это, работает как шарм :) – TheRarebit