В верхней части EAGLView появляется мигающая красная полоса, которую я добавил в качестве подпредставления в приложении для iPhone. Он мигает, включается и выключается (то есть один кадр там, следующий кадр нет, следующий кадр снова там). Я удалил большую часть кода из своего приложения, пока по существу не остался со стандартным проектом OpenGL-ES и внесены некоторые изменения:
Glview не полноэкранный; это подпредставление.
Я включил буфер глубины.
Я даже не пытаюсь что-то нарисовать.
Если glview - полноэкранный режим или я отключаю буфер глубины, то мерцания нет, и он работает нормально. Но, само собой разумеется, это трехмерный вид, и я хотел бы иметь возможность отображать его в увеличенном виде UIKit.
Я не уверен, какой код будет полезен для публикации, но вот как я могу добавить glview к моему основному виду:
appDelegate.glView.frame = CGRectMake(245, 65, 215, 215);
[self.view addSubview:appDelegate.glView];
[appDelegate.glView startAnimation];
Вот моя функция рендеринга:
- (void) render
{
[EAGLContext setCurrentContext:context];
glBindFramebufferOES(GL_FRAMEBUFFER_OES, defaultFramebuffer);
glViewport(0, 0, backingWidth, backingHeight);
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glBindRenderbufferOES(GL_RENDERBUFFER_OES, colorRenderbuffer);
[context presentRenderbuffer:GL_RENDERBUFFER_OES];
}
Мне кажется довольно очевидным, что проблема как-то связана с буфером глубины, но я не знаю почему. Кроме того, он отлично работает в симуляторе, но не на моем iphone. Я использую iPhone OS 3.1. Любые идеи о том, где искать проблему?