2011-10-07 71 views
0

我正在創建一個opengl ES項目,我試圖展示一些紋理,所有的工作都很好,但問題在於內存的使用,每5秒增加幾乎1 Mb,我想我我做錯了什麼,我可不是在使用此類apple recommendations我將托盤肯定的,但我想知道如果我的代碼有一些bug,有paiting如何I'm:OpenGL ES代碼修改

// Generate the vertex buffer object (VBO) 
glGenBuffers(1, &ui32Vbo); 

// Bind the VBO so we can fill it with data 
glBindBuffer(GL_ARRAY_BUFFER, ui32Vbo); 

// Set the buffer's data 
// Calculate verts size: (3 vertices * stride (3 GLfloats per each vertex)) 

glBufferData(GL_ARRAY_BUFFER, uiSize, verts, GL_STATIC_DRAW); 

// Bind the VBO so we can fill it with data 
glBindBuffer(GL_ARRAY_BUFFER, ui32Vbo); 
glEnableClientState(GL_VERTEX_ARRAY); 
glVertexPointer(3, GL_FLOAT, 20, 0); // Stride = 20 bytes 

glBindTexture(GL_TEXTURE_2D, textID); 
glEnableClientState(GL_TEXTURE_COORD_ARRAY);  
glTexCoordPointer(2, GL_FLOAT, 20, (void *)12); 

glDrawArrays(GL_TRIANGLE_FAN, 4, 4); 

// Bind the VBO so we can fill it with data 
glBindBuffer(GL_ARRAY_BUFFER, 0); 

謝謝非常!!!

回答

3

您應該只生成一次頂點緩衝區對象,使用它繪製。

看來你在每一幀都創建一個新的。

+0

It works !!!內存使用率大幅下降。謝謝!!! – Gustavo