我在使用 OpenGL ES 2.0 和自动参考计算 (arc) 时遇到问题。
当我启动一个场景(一个背景、两个棋子和某些情况)时,它遵循以下过程:
1/ 创建上下文
context = [[EAGLContext alloc] initWithAPI:kEAGLRenderingAPIOpenGLES2];
[EAGLContext setCurrentContext:context];
2/ 编译着色器
3/ 设置帧缓冲
GLuint framebuffer;
glGenFramebuffers(1, &framebuffer);
glBindFramebuffer(GL_FRAMEBUFFER, framebuffer);
glFramebufferRenderbuffer(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_RENDERBUFFER, _colorRenderBuffer);
4/ 每次渲染前清除颜色
glClearColor(clearColor.r, clearColor.g, clearColor.b, clearColor.a);
glClear(GL_COLOR_BUFFER_BIT);
5/ 渲染所有形状
第一次启动,一切正常并正确渲染。然后我导航到菜单,启动另一个关卡,所有 1/ 2/ 3/ 4/ 5/ 再次处理以生成新关卡。问题是我的旧棋子和箱子是可见的,闪烁/剪切/透明。
编辑:我正在使用弧,如果我将它设置为 nil,控制器不会释放我的旧场景,因此我将我的标签重定向到弧问题。