我有一些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