似乎每個人都認爲這是壞的,而且您需要擺脫GLKBaseEffect以阻止泄漏。但是沒有人提到你會替換它。GLKBaseEffect prepareToDraw正在泄漏
有人可以指出我在正確的方向嗎?一些示例代碼或教程將非常有用!
我正在做非常基本的東西,只是畫2D精靈。除了所有泄漏之外的工作很好:p
我只需要知道prepareToDraw在做什麼,並用一些有效的代碼替換它。我發現的所有教程似乎都專注於3D渲染......
我可以使用OpenGL ES1而不是2嗎?
//---Sprite drawing code ----------------------
effect.transform.modelviewMatrix = viewMatrix;
effect.texture2d0.name = textureInfo.name;
effect.texture2d0.envMode = GLKTextureEnvModeReplace;
// LEAK Here
[effect prepareToDraw];
glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
glEnableVertexAttribArray(GLKVertexAttribPosition);
glVertexAttribPointer(GLKVertexAttribPosition, 2, GL_FLOAT, GL_FALSE, 0, vertices);
glEnableVertexAttribArray(GLKVertexAttribTexCoord0);
glVertexAttribPointer(GLKVertexAttribTexCoord0, 2, GL_FLOAT, GL_FALSE, 0, textureVerts);
glDrawArrays(GL_TRIANGLE_FAN, 0, 4);
glDisableVertexAttribArray(GLKVertexAttribPosition);
glDisableVertexAttribArray(GLKVertexAttribTexCoord0);
glDisable(GL_BLEND);
同樣的問題在這裏... – Christoph