У меня есть приложение DPI Aware (через файл манифеста), и на 1 системе монитора все следующие методы возвращают неправильное разрешение рабочего стола:
- GetSystemMetrics
- GetMonitorInfo
- GetWindowRect (GetDesktopWindow (), & рабочий стол)
- EnumDisplaySettingsExA / ENUM_CURRENT_SETTINGS
- IDXGIOutput :: GetDesc
Мой монитор 4k, но я установил размер рабочего стола в 1920x1080 со 100% масштабом. В оконном режиме заявленное разрешение по всем методам является правильным. Однако при переключении в полноэкранный режим все они возвращают 1600x1200. Если это была проблема DPI Aware, она должна, по крайней мере, сохранять соотношение сторон, например 1600x900.
Я заметил, что неправильные результаты появляются после вызова IDXGISwapChain :: SetFullscreenState (true, output_device), где объект цепочки обмена создается с флагом DXGI_SWAP_CHAIN_FLAG_ALLOW_MODE_SWITCH в соответствии с MSDN.
Приложение использует DirectX 11.
Любые предложения, что это за причина?
Спасибо