我正在学习iOS的OpenGL,我发现了一些我试图测试的旧代码,当我尝试运行它时,我得到了EXC_BAD_ACCESS
这是代码:
- (void) initGL
{
RendererInfo renderer;
// Query renderer capabilities that affect this app's rendering paths
renderer.extension[APPLE_texture_2D_limited_npot] =
(0 != strstr((char *)glGetString(GL_EXTENSIONS), "GL_APPLE_texture_2D_limited_npot"));
renderer.extension[IMG_texture_format_BGRA8888] =
(0 != strstr((char *)glGetString(GL_EXTENSIONS), "GL_IMG_texture_format_BGRA8888"));
glGetIntegerv(GL_MAX_TEXTURE_SIZE, &renderer.maxTextureSize);
}
根据我的阅读,这些在当前版本的OpenGL中已经过时,这是正确的,是否需要更新此代码?
答案 0 :(得分:0)
扩展名可能是偶像,但代码不是。
glGetString
和glGetIntegerv
是OpenGL的标准,因此您的代码中必须有错误,我不是Objective-C编码器,但这似乎没有初始化OpenGL或者某些关闭对象访问无效(例如,通过访问null
/ nil
对象)。