Я ищу совет, прежде чем углубляться в свой следующий проект. Я хотел бы поддержать все различные резолюции, которые теперь поддерживаются iOS (сетчатка, не-сетчатки iPhone и все 3 iPads).Разработка для дисплеев Retina и non-retina OpenGL ES
Каков наиболее распространенный способ, которым разработчики это делают? Я видел аналогичные вопросы, но по определенному характеру. Я ищу полный пакет. IE. Я хотел бы поддерживать разные растровые шрифты разрешения, изображения и т. Д.
Является ли конкретный переключатель устройства или стандартными для операторов?
Спасибо за помощь в продвинутом виде.
E
Edit: я нашел это от Apple:
Blockquote Если ваше приложение использует OpenGL ES для рендеринга, существующий код рисунок должен продолжать работать без каких-либо изменений. Однако, когда вы нарисованы на экране с высоким разрешением, ваш контент масштабируется соответствующим образом и будет казаться более блочным. Причиной для блочного внешнего вида является то, что поведение по умолчанию класса CAEAGLLayer, которое вы используете для резервного копирования рендеринга OpenGL ES, такое же, как и другие объекты слоя Core Animation. Другими словами, его масштабный коэффициент первоначально установлен на 1.0, что заставляет компоновщик Core Animation масштабировать содержимое слоя на экранах с высоким разрешением. Чтобы избежать этого блочного внешнего вида, вам необходимо увеличить размер ваших рендеринговых буферов OpenGL ES в соответствии с размером экрана. (С большим количеством пикселей вы можете увеличить количество деталей, которые вы предоставляете для своего контента.) Поскольку добавление большего количества пикселей в ваши рендерингбуферы имеет последствия для производительности, вы должны явно выбрать поддержку экранов с высоким разрешением.
Blockquote Чтобы включить чертеж с высоким разрешением, вы должны изменить масштабный коэффициент представления, которое вы используете, чтобы представить свой контент OpenGL ES. Изменение свойства contentScaleFactor вашего представления от 1.0 до 2.0 приводит к соответствующему изменению масштабного коэффициента для базового объекта CAEAGLLayer. Метод renderbufferStorage: fromDrawable: метод, который вы используете для привязки объекта layer к вашим рендерингбуферам, вычисляет размер renderbuffer, умножая границы слоя на его масштабный коэффициент. Таким образом, удвоение масштабного коэффициента удваивает ширину и высоту получаемого рендеринга, что дает вам больше пикселей для вашего контента. После этого вы должны предоставить контент для этих дополнительных пикселей.
Таким образом, я думаю, что мой обновленный вопрос: как удвоить масштабный коэффициент, описанный выше?
Edit 2:
Я почти там ...
Я использую это для масштабирования внутри моего EAGLView:
// Adjust for retina displays
if ([self respondsToSelector:@selector(setContentScaleFactor:)])
{
self.contentScaleFactor = [[UIScreen mainScreen] scale];
}
Единственная проблема, которая в настоящее время остается происхождение каким-то образом перепутались. Отображение изображений теперь масштабируется в соответствии с разрешением, но при большем разрешении изображение начинается в середине экрана.
Пожалуйста, помогите!
Редактировать 3: Решено !!!! Я испытывал проблемы в своей ориентации.
Вам необходимо убедиться, что ваш перевод обновлен.Я использовал это:
glTranslatef(width/2, height /2, 0);
glRotatef(-90, 0, 0, 1);
glTranslatef(-1 * (height/2),-1 * (width/2),0);
Спасибо за внешность. Я надеюсь, что это помогает кому-то.
Любой удачи с заходящим conten tScale = 2 на iPad3 для поддержки сетчатки? http://stackoverflow.com/questions/11276027/where-to-start-with-an-opengl-painter-for-the-retina-display –
Я еще не пробовал показ iPad Retina. Когда я это сделаю, я снова коснусь его. –