我有一个 MainMenuViewController 和一个 GameViewController,它是一个 GLKViewConrtroller。
我第一次从主菜单转到 GameViewController 时,一切都渲染得很好。如果我回到主菜单,GameViewController 和它的视图就会被释放(我记录了它)。
现在回到游戏时,我看到一个空白屏幕,没有任何东西被 OpenGL 渲染。UIKit 的覆盖测试菜单仍然存在。
这就是我在 GameViewController 的 dealloc 方法中拆除 OpenGL 的方式,添加了最后五行以使其工作,因此无论有没有它们都不起作用。
- (void)tearDownGL {
[EAGLContext setCurrentContext:self.context];
glDeleteBuffers(1, &_vertexBuffer);
glDeleteVertexArraysOES(1, &_vertexArray);
self.effect = nil;
_program = nil;
glBindVertexArrayOES(0);
glBindBuffer(GL_ARRAY_BUFFER, 0);
glBindTexture(GL_TEXTURE_2D, 0);
[EAGLContext setCurrentContext: nil];
}