Yosemite中的Xcode 6 iOS SDK 8.0给出了OpenGL ES2代码的错误,该代码在Xcode 5下编译得很好
GLuint depthStencilRenderbuffer;
glBindRenderbufferOES(GL_RENDERBUFFER_OES, depthStencilRenderbuffer);
glRenderbufferStorageOES(GL_RENDERBUFFER_OES,
GL_DEPTH24_STENCIL8_OES,
self.view.bounds.size.width,
self.view.bounds.size.height);
生成错误:
第2行:
'glBindRenderBufferOES'的冲突类型
使用未声明的标识符'GL_RENDERBUFFER_OES'
第3行:
包含'glBindRenderBufferOES'的隐式声明在C99中无效
编辑:好的,我可以通过代替:
让事情再次发挥作用GLuint depthStencilRenderbuffer;
glBindRenderbuffer(GL_RENDERBUFFER, depthStencilRenderbuffer);
glRenderbufferStorage(GL_RENDERBUFFER,
GL_STENCIL_INDEX8,
self.view.bounds.size.width,
self.view.bounds.size.height);
仍然 - 我不知道为什么需要这种改变,我会对这里发生的事情有进一步的了解。
答案 0 :(得分:54)
尝试:
#import <OpenGLES/ES2/glext.h>
或
#import <OpenGLES/ES3/glext.h>
适合我。
没有它,正确处理xcode 6 + ios7的应用程序可以找到GL_FALSE和其他..
答案 1 :(得分:6)
我认为@ reto-koradi的评论是正确的。我的代码中有一个问题在iOS8中同样被破坏了。他们改变了一些标题包括其他标题的方式,所以这里是我采取的步骤:
对我来说这是#import <OpenGLES/ES2/glext.h>
因为我使用的一些glextensions缺失。