我有一些OpenGL ES的代码看起来像这样:iOS OpenGL ES:何时应该绑定帧缓冲区和渲染缓冲区?
- (void)drawView {
[EAGLContext setCurrentContext:context];
glBindFramebufferOES(GL_FRAMEBUFFER_OES, viewFramebuffer);
glViewport(0, 0, backingWidth, backingHeight);
[game drawFrame];
glBindRenderbufferOES(GL_RENDERBUFFER_OES, viewRenderbuffer);
[context presentRenderbuffer:GL_RENDERBUFFER_OES];
[self checkGLError:NO];
}
我的问题是这样的:当我应该叫glBindFramebufferOES
和glBindRenderbufferOES
?老实说,我不记得为什么我以这种方式编写代码(这是几个月前的版本),并且我开始回到iOS上的OpenGL ES中,并试图了解帧缓冲区和渲染缓冲区如何工作。
我应该每帧调用这些函数吗?还是应该在任何框架开始绘制之前只调用一次?
编辑:我应该甚至在每帧的基础上调用glViewport
?在draw
有人被称为之前,我在一个单独的函数中设置了我的视口 - 每帧连续呼叫glViewPort
是否有意义?
你是对的,你必须绑定渲染缓冲区_every_框架,或者什么都不显示。 – bobobobo 2013-01-10 19:02:07