2010-05-25 27 views
1

我正在嘗試創建一個屏幕外幀緩衝,我可以在其中執行一些OpenGL繪圖,然後手動拉出這些位。我遵循here指令,但在第4步中,狀態爲0而不是GL_FRAMEBUFFER_COMPLETE_OES。配置屏幕外幀緩衝失敗的完整性測試

如果我在每次gl調用後插入對glGetError()的調用,則每次都返回0(GL_NO_ERROR)。但是,通話期間變量的值不會改變。例如,

GLuint framebuffer; 
glGenFramebuffersOES(1, &framebuffer); 
glBindFramebufferOES(GL_FRAMEBUFFER_OES, framebuffer); 

幀緩衝區的價值沒有得到所有(甚至當我將其更改爲一些任意值,並重新執行)改變。這幾乎就像實際上並沒有發出呼叫聲。我連接到OpenGLES框架,並且沒有編譯,鏈接或運行時錯誤(或警告)。

我不知道下一步該做什麼。我試着繼續繪製圖形,但沒有看到我期望的結果,但是現在我無法分辨是因爲上述錯誤還是轉換爲UIImage。

回答

0

這聽起來像您嘗試創建FBO時沒有活動的GL上下文。

編輯:爲了完整起見,這裏的how to create an OpenGL ES 1.1 context並激活它:

EAGLContext* myContext = [[EAGLContext alloc] initWithAPI:kEAGLRenderingAPIOpenGLES1]; 
[EAGLContext setCurrentContext: myContext]; 
+0

你能否解釋一下?我認爲創建FBO是給我的GL環境讓我吸引。 是的,我是一個OpenGL新手。 – randallmeadows 2010-05-25 19:26:18

+0

沒關係......我想清楚你的意思了,是的,那確實是問題所在。現在要弄清楚爲什麼最終的結果是全黑的。謝謝。 – randallmeadows 2010-05-25 20:53:08

相關問題