//Get screen resolution
SDL_DisplayMode current;
cout << "num_displays : " << SDL_GetNumVideoDisplays() << endl;
for (int i = 0; i < SDL_GetNumVideoDisplays(); ++i){
SDL_GetDesktopDisplayMode(i, ¤t);
cout << "current.w [ " << current.w << " ] - current.h [ " << current.h << " ]\n";
}
Следующий код распечатывает разрешение экрана каждого подключенного дисплея. Проблема в том, что когда я запускаю его в режиме 1920 x 1080, он показывает неправильное разрешение. Однако, если я уменьшу разрешение до 1600 x 900 или ниже на главном дисплее, значение current.w & current.h идеально.
Это ограничение SDL или мои драйверы дисплея неисправны?
IDE: CodeBlocks (32 бит) — Компилятор: MinGW
РЕДАКТИРОВАТЬ: Неправильно на самом деле очень специфическое значение, а не мусор.
Вместо 1920 — 1080 неправильный вывод — ВСЕГДА 1536 — 864
Оказывается, @PeterT был прав. Я использую Windows 10 и масштабирование было 125%. Уменьшение масштабирования до 100% решило проблему.
Когда я уменьшил разрешение, оказалось, что Windows автоматически изменила масштабирование до 100%.
Других решений пока нет …