2012-11-08 186 views
0

我目前的工作在OpenGL ES的渲染的2D遊戲在Android的。我的精靈似乎能夠正確渲染,但不幸的是,當我不想讓它們渲染時,它們會保持在屏幕上。當我在緩衝區中畫一個沒有任何東西的框架時,我仍然可以看到以前繪製的精靈。的OpenGL ES緩衝區不乾淨

這是代碼。

public void renderFrame() 
{ 
    gl.glClear(GL10.GL_COLOR_BUFFER_BIT); 
    gl.glEnable(GL10.GL_TEXTURE_2D); 

    gl.glViewport(0, 0, viewPort.getWidth(), viewPort.getHeight()); 
    gl.glMatrixMode(GL10.GL_PROJECTION); 
    gl.glLoadIdentity(); 
    gl.glOrthof(position.x - frustumWidth * zoom/2, 
       position.x + frustumWidth * zoom/ 2, 
       position.y - frustumHeight * zoom/2, 
       position.y + frustumHeight * zoom/ 2, 
       1, -1); 
    gl.glMatrixMode(GL10.GL_MODELVIEW); 
    gl.glLoadIdentity(); 

    gl.glEnable(GL10.GL_BLEND); 
    gl.glBlendFunc(GL10.GL_SRC_ALPHA, GL10.GL_ONE_MINUS_SRC_ALPHA); 

    gl.glBindTexture(GL10.GL_TEXTURE_2D, textureId); 

    /* 
    * Buffer filling code goes here 
    */ 

    gl.glEnableClientState(GL10.GL_VERTEX_ARRAY); 
    verticesIntBuffer.position(0); 
    gl.glVertexPointer(2, GL10.GL_FLOAT, vertexSize, vertices); 

    gl.glDrawElements(GL10.GL_TRIANGLES, 6, GL10.GL_UNSIGNED_SHORT,      
        shortBufferIndices); 

    gl.glDisable(GL10.GL_BLEND); 
} 

我認爲glClear會清理緩存,但這並不像它在這裏。

該解決方案並沒有爲我工作如何明確地乾淨緩衝區要麼Clearing/releasing OpenGL ES buffers

任何想法?由於渲染以前的精靈還會發生什麼可能發生的另一個想法?

非常感謝您的耐心等待。

回答

1

,應清除顏色和深度緩衝:

gl.glClear(GL10.GL_COLOR_BUFFER_BIT | GL10.GL_DEPTH_BUFFER_BIT); 
相關問題