我將iPhone應用程序從OpenGL ES 1.1轉換爲ES 2.0。應用程序將繪製到EAGLView,因爲它是在Apple提供的標準OpenGL ES應用程序模板中定義的。OpenGL ES 2.0在iPhone模擬器中顯示正常,但在iPhone上不顯示
ES 1.1代碼在模擬器和iPhone上都正常工作。新的ES 2.0代碼在模擬器上工作正常,但在iPhone 3GS上,我得到的構件(例如其他應用程序的縮放視圖片段),據我所知,表明我的程序對幀緩衝區感到困惑。我覺得這很奇怪,因爲與ES 1.1相比,我沒有對幀緩衝區處理邏輯進行任何更改。
包括我,做繪圖代碼的一部分下方,雖然我沒有看到這一點,因爲它在模擬器上正常工作:
GLfloat data[600000];
// initialize data
glClearColor(0.f, 0.f, 0.f, 0.f);
glClear(GL_COLOR_BUFFER_BIT);
glUseProgram(program);
glUniformMatrix4fv(uniforms[UNIFORM_PROJECTION_MATRIX], 1, GL_FALSE, projection_matrix);
glUniformMatrix4fv(uniforms[UNIFORM_MODELVIEW_MATRIX], 1, GL_FALSE, modelview_matrix);
glVertexAttribPointer(ATTRIBUTE_POSITION, 3, GL_FLOAT, GL_FALSE, 0, data);
glEnableVertexAttribArray(ATTRIBUTE_POSITION);
glDrawArrays(GL_POINTS, 0, 200000);
glFlush();
哇,你是救命恩人!如果可以的話,我會給你兩次投票:D – eodabash 2012-08-01 17:57:23