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