似乎每个人都同意这是坏的,你需要摆脱 GLKBaseEffect 以阻止它泄漏。但是没有人提到你会用什么来代替它。
有人可以指出我正确的方向吗?一些示例代码或教程将非常有用!
我正在做非常基本的事情,只是绘制 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);