(Я отвечу на свой вопрос с помощью решения, которое нашел. Хотя я буду рад рассмотреть и другие ответы.)
В документах CAEAGLLayer Apple заявляет (немного неуклюже), что вы должны выполнять вращение внутри самой GL: «При рисовании ландшафтного содержимого на книжной ориентации вы должны вращать содержимое самостоятельно, а не использовать преобразование CAEAGLLayer для его поворота. «. Они не объясняют почему, но я много раз читал о заметном падении производительности.
К счастью, я решил это с добавлением всего нескольких строк. Это для альбомной ориентации вправо, где кнопка home находится на вправо .
glPushMatrix();
glRotatef(90, 0.0, 0.0, 1.0);
glTranslatef(0.0f, -320.0f, 0.0f );
// *** ALL RENDERING GOES HERE ***
glPopMatrix();
Если вы нацелены на iPad, замените -320 на -768.
Я также конвертирую координаты из входящих UITouches:
int touchx = touch.y;
int touchy = viewWidth - touch.x;