2010-03-17 36 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