SDL2 — определение планшета по сравнению с телефоном или размером экрана

В SDL2 -- есть ли хороший способ определить планшет по сравнению с телефоном или определить размер экрана (физический размер экрана --- дюймы/см/и т. д.)?

Я хочу обнаружить маленькие экраны и увеличить размеры кнопок.

Я ищу способ SDL2 сделать это, предпочтительно, поскольку не имеет значения, является ли устройство Android/iPhone/etc.


person B. Nadolson    schedule 17.09.2015    source источник


Ответы (1)


См. эту функцию SDL2: https://wiki.libsdl.org/SDL_GetDisplayDPI

Получив разрешение и физический DPI, вы можете получить размер экрана в дюймах.

Ваш конкретный вопрос обсуждается в их системе отслеживания ошибок здесь:

https://bugzilla.libsdl.org/show_bug.cgi?id=2473

Есть несколько старых вопросов SO, которые возникли с пустыми руками: iOS получает размер физического экрана программно?< /а>

person Chris Beck    schedule 17.09.2015
comment
Спасибо! Это именно тот API, который я искал, но не смог найти. API выглядит очень новым, я уверен, что смогу обойти ограничение iOS, которое имеет [[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone и т. д. - person B. Nadolson; 18.09.2015
comment
Да, я не знал, что он существует, пока не искал его - будьте осторожны, в документах говорится, что он работает, только если доступна информация о dpi, поэтому вам может понадобиться какой-то запасной план или что-то в этом роде. - person Chris Beck; 18.09.2015
comment
Я использовал SDL время от времени в течение нескольких лет. В последнее время (например, SDL2) они очень ориентированы на будущее. И часто есть приятные сюрпризы в журналах изменений (например, блестящая блокировка MessageBox для Android — написание блокирующего окна сообщений для Android — это большой кошмар, и Android изо всех сил старается сделать это практически невозможным). Но, как и во многих быстро развивающихся проектах, документация скудна, особенно на переднем крае. И найти ответы на StackOverflow в 10 раз проще, чем на форумах SDL2. - person B. Nadolson; 18.09.2015
comment
Хм, я получаю сообщение об ошибке Эта операция не поддерживается на телефоне Android в sdl версии 2.0.5, когда я использую SDL_GetDisplayDPI. Интересно, почему. - person mako; 31.08.2017