Позволяя UIKit обрабатывать поворот устройства в OpenGLES 1.1 - действительно ли он медленнее, и если да, то при каких обстоятельствах? - PullRequest
3 голосов
/ 12 января 2011

Я позволил UIKit обрабатывать поворот устройства для меня (в моем iOS-приложении UIViewController, который реализует shouldAutorotateToInterfaceOrientation:), и я был очень доволен тем, насколько просто было заставить все это работать.

С тех пор мне сказали, что это медленнее, чем все операции ротации вручную.Однако мои тесты не подтвердили это ни на iPad (iOS 4.2), ни на iPod Touch 2G (также iOS 4.2).

Я был немного удивлен, когда мне сказали, что будетВ любом случае, большая разница: судя по тому, как UIKit работает, не похоже, что у OpenGLES есть возможность сделать переворот страницы.Так что -[EAGLContext presentRenderbuffer:] в значительной степени должен сделать копию, которая займет в основном одно и то же время независимо от состояния вращения.Накладные расходы на другие аспекты вращения (главным образом, преобразования общих координат), я думаю, будут такими же незначительными.

Это только моя гипотеза, и у меня есть только мои лежачие глаза, чтобы поддержать это!Так есть ли случаи, когда позволить UIKit управлять вращением устройства на самом деле имеет большое значение?Если так, то кто они?

1 Ответ

1 голос
/ 20 июля 2011

Использование контроллеров представления для управления вращением является лучшим и рекомендуемым решением на следующих устройствах: iPhone 3GS, iPhone 4, iPad, iPad 2, iPod touch 3G, iPod touch 4G под управлением iOS 4.2 и более поздних версий.

Если ваше приложение работает на любом старом устройстве iOS, вы должны выполнить ротацию напрямую с помощью OpenGL ES.По совпадению, устройства, на которых это рекомендуется, это все устройства, которые поддерживают OpenGL ES 2.0 , и поэтому их конвейеры OpenGL ES 1.1 реализованы с использованием шейдеров.

Если вам нужна дополнительная информацияо том, как обрабатывать ротацию на устройствах, отличных от ES 2.0, или о подтверждении этого ответа, вы найдете здесь .

...