2010-03-17 76 views
0

在我的iPhone应用程序中添加了作为子视图的EAGLView的顶部会出现闪烁的红色条。它会闪烁(即一帧在那里,下一帧不在,下一帧在那里)。我已经删除了大量的代码从我的应用程序,直到我基本上是与股票的OpenGL-ES项目和一些变化左:神秘闪烁视觉神器

  1. 的glview不是全屏;这是一个子视图。

  2. 我启用了深度缓冲区。

  3. 我什至不想画任何东西。

如果glview是全屏,或者如果我禁用深度缓冲区,那么没有闪烁,它工作正常。但不用说,这是一个3D视图,我希望能够在更大的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。关于在哪里寻找问题的任何想法?

回答

0

嗯,我擅自改变了glview的宽度,并修复了它。我仍然不知道问题的原因是什么。

+0

我知道这是一个很长的镜头,但检查一些愚蠢的事情,像我很久以前的这个问题:http://stackoverflow.com/questions/1039208/opengl-light-flickering-when-i-update-its-position - 每帧 - 也许它会给你一些想法。或者,也许这只是一个错误? – Ricket 2010-03-23 13:06:07