神秘的闪烁视觉神器

时间:2010-03-17 21:01:16

标签: iphone opengl-es

我在iPhone应用程序中添加了一个子视图,在EAGLView的顶部显示一个闪烁的红色条。它开启和关闭(即,它在那里的一帧,下一帧不是,下一帧又在那里)。我已从我的应用程序中删除了大量代码,直到我基本上留下了OpenGL-ES库存项目并进行了一些更改:

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

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

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

  4. 如果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。关于在哪里寻找问题的任何想法?

1 个答案:

答案 0 :(得分:0)

好吧,我随意改变了glview的宽度并修复了它。我仍然不知道问题的根本原因是什么。