//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_GetDesktopDisplayMode() не может получить 1080
Является ли это ограничением SDL или мои драйверы дисплея неисправны?
IDE: CodeBlocks (32 бит) - Компилятор: MinGW
EDIT: Неправильный на самом деле очень конкретное значение, а не мусор. Вместо 1920 - 1080 неправильный выход ВСЕГДА 1536 - 864
Что значит «неправильно» (наполовину то, что должно быть, отрицательно, NaN, ...)? – Brendan
Коэффициент 1,25 ли вы (или ваша ОС) установить ваш рабочий стол (highdpi) масштабирования до 1,25 на этом разрешении? Если это так, вы можете настроить ваше приложение на highdpi, но это делается на вашей ОС (plist на osx или manifest на окнах). – PeterT