2013-10-06 2 views
3

У меня есть простая игра, в которой напрямую используется EAGLLayer. Я должен был настроить runloop и все OpenGL ES шаблоны. Иногда игра падает из-за проблем с фоновой подсветкой OpenGL. Я слышал, что GLKit имеет надежный шаблон OpenGL, который заботится об инициализации и приостановке OpenGL.Как заменить OpenGL ES 1.1 Просмотр EAGLLayer с представлением OpenGL из GLKit?

Возможно ли установить этот вид GLKit для OpenGL 1.1 и с чего бы начать?

+0

вам удалось запустить OpenGLES 1.1 на GLKit? Если да, можете ли вы отправить решение здесь? – Dorald

ответ

1

Это довольно открытый вопрос, поэтому, вероятно, лучше всего начать с получения какого-то фона с помощью GLKit, а затем задать дополнительные вопросы, если у вас есть конкретные проблемы.

Посмотрите на код, который вы получаете при создании нового проекта Xcode, используя шаблон «OpenGL Game» - это устанавливает для вас GLKView и GLKViewController. Также есть описание того, как работают эти классы и как их использовать в Apple OpenGL ES Programming Guide.

Общая суть его: GLKView делает все видеобуфера, renderbuffer и настройку окна просмотра и презентацию для основного OpenGL ES рисования (включая все дополнительные фреймбуфера жонглирование для мультисэмплинга, если вы хотите, что), так что все, что вы должны сделать выдает команды рисования. GLKViewController владеет GLKView и запускает таймер анимации, который вызывает ваш код чертежа - по умолчанию он не будет вызывать ваш код чертежа, когда приложение находится в фоновом режиме.

Если вы используете GLKViewController и используете только вызовы OpenGL ES из метода рисования GLKView (подкласс или делегат), вам не придется беспокоиться о сбое из-за использования графического процессора в фоновом режиме. Если вы видите такие сбои (с gpus_ReturnNotPermittedKillClient в трассировке стека), это может помочь попытаться заставить GL завершить обработку перед выходом на задний план - вызовите glFinish() в applicationWillResignActive:.