Почему симулятор iPhone масштабируется *больше*, чем реальность?

Я запускаю симулятор iPhone 7 Plus и вижу что-то непонятное.

Размер экрана iPhone 7 Plus составляет 1080x1920, и я запускаю его на мониторе 1080P в портретной ориентации, поэтому его размер также составляет 1080x1920, и он настроен на работу с исходным разрешением монитора, поэтому масштабирование ОС, о котором я знаю, отсутствует. Я также запускаю симулятор в размере 100%.

Теперь я могу понять из-за строки заголовка и строк меню, почему экран обрезается по вертикали (хотя кажется, что он обрезается больше, чем даже это), но симулятор обрезается по горизонтали, потому что он значительно шире, чем сам экран. Это меня смутило, потому что по бокам нет даже границы пикселей.

Итак, кто-нибудь может подумать, почему симулятор не будет показывать точный размер экрана, как можно было бы ожидать? Есть ли способ проверить настройки DPI? Мое единственное предположение, что iPhone показывает разрешение 96 точек на дюйм, а монитор — 72 или что-то в этом роде, но это чисто предположение.

Обновление - То же самое на экране 4K

Дальнейшее тестирование... запустил симулятор iPhone 7 Plus на моем экране 4K (3840x2160), который работает в родном формате (т.е. не HiDpi), и он также показывает отсечение по вертикали, что означает, что здесь определенно происходит какое-то масштабирование, которое я не могу понять. запрещать.


person Mark A. Donohoe    schedule 08.12.2016    source источник
comment
iPhone 7 plus выполняет рендеринг с разрешением 1242x2208, а затем понижает разрешение до 1080x1920, чтобы оно соответствовало разрешению экрана физического устройства. Симулятор не выполняет эту субдискретизацию AFAIK и показывает ее в полном разрешении 1242x2208.   -  person dan    schedule 08.12.2016
comment
Интересный. Я этого не знал. Можете ли вы предоставить какие-либо ресурсы, которые ссылаются на это? И зачем им это делать. Понижающая выборка добавляет ненужную обработку, не так ли? Кроме того, как насчет других размеров устройств?   -  person Mark A. Donohoe    schedule 08.12.2016


Ответы (1)


Дисплеи iPhone 6 Plus и 7 Plus работают с 3-кратным разрешением. Исходя из отображения 414 X 736 точек, это означает, что на самом деле имеется 1242 X 2208 отображаемых пикселей. Затем они преобразуются в изображение с разрешением 1080 X 1920 на устройстве.

В случае симулятора эта выборка не происходит, когда вы работаете со 100% размером; вы получаете однозначное сопоставление пикселей симулятора с пикселями дисплея; что приводит к вертикальной обрезке даже на мониторе 4K.

Я предполагаю, что на 100% Apple хочет, чтобы вы могли видеть каждый визуализированный пиксель без какой-либо понижающей выборки или влияния масштабирования.

Эта инфографика из кода краски показывает детали

person Paulw11    schedule 08.12.2016