Таинственный Мерцающий Визуальный Артефакт - PullRequest
0 голосов
/ 18 марта 2010

В верхней части EAGLView появляется мигающая красная полоса, которую я добавил в качестве подпредставления в приложении для iPhone. Он мигает, включается и выключается (то есть один кадр там, следующий кадр нет, следующий кадр снова там). Я удалил большую часть кода из своего приложения, пока по существу не остался со стандартным проектом OpenGL-ES и внесены некоторые изменения:

  1. Glview не полноэкранный; это подпредставление.

  2. Я включил буфер глубины.

  3. Я даже не пытаюсь что-то нарисовать.

Если 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. Любые идеи о том, где искать проблему?

1 Ответ

0 голосов
/ 18 марта 2010

Ну, я произвольно изменил ширину glview, и это исправило это. Я до сих пор не знаю, какова была первоначальная причина проблемы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...