Errors showing for OES OpenGL statements in Xcode 6 for iOS8

Christian J. B. picture Christian J. B. · Jun 3, 2014 · Viewed 8.6k times · Source

Xcode 6 iOS SDK 8.0 in Yosemite is giving me errors for OpenGL ES2 code which compiles fine under 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);

Generates errors:

line 2:

Conflicting types for 'glBindRenderBufferOES'

Use of undeclared identifier 'GL_RENDERBUFFER_OES'

line 3:

implicit declaration of contain 'glBindRenderBufferOES' is invalid in C99

Edit: OK, I can get things working again by substituting:

GLuint depthStencilRenderbuffer;
glBindRenderbuffer(GL_RENDERBUFFER, depthStencilRenderbuffer);
glRenderbufferStorage(GL_RENDERBUFFER,
                      GL_STENCIL_INDEX8,
                      self.view.bounds.size.width,
                      self.view.bounds.size.height);

Still - I don't know why this change is needed and I'd appreciate some further insight as to what's going on here.

Answer

Niedved picture Niedved · Jun 17, 2014

Try:

#import <OpenGLES/ES2/glext.h>

or

#import <OpenGLES/ES3/glext.h>

works for me.

Without it, app which correctlyworking on xcode 6 + ios7 can find GL_FALSE and others..