CAEAGLLayer *eagl_layer = (CAEAGLLayer *) view.layer;
eagl_layer.opaque = TRUE;
eagl_layer.drawableProperties =
[NSDictionary dictionaryWithObjectsAndKeys:
[NSNumber numberWithBool:FALSE], kEAGLDrawablePropertyRetainedBacking,
kEAGLColorFormatRGBA8, kEAGLDrawablePropertyColorFormat,
nil];
ogl_ctx = [[EAGLContext alloc] initWithAPI:kEAGLRenderingAPIOpenGLES1];
...
[EAGLContext setCurrentContext: ogl_ctx];
double s = self.contentScaleFactor;
int w = s * [self frame].size.width;
int h = s * [self frame].size.height;
glGenFramebuffersOES (1, &gl_framebuffer);
glBindFramebufferOES (GL_FRAMEBUFFER_OES, gl_framebuffer);
glGenRenderbuffersOES (1, &gl_renderbuffer);
glBindRenderbufferOES (GL_RENDERBUFFER_OES, gl_renderbuffer);
glRenderbufferStorageOES (GL_RENDERBUFFER_OES, GL_RGBA8_OES, w, h);
glFramebufferRenderbufferOES (GL_FRAMEBUFFER_OES, GL_COLOR_ATTACHMENT0_OES,
GL_RENDERBUFFER_OES, gl_renderbuffer);
#if 1 // #### why you no worky
glGenRenderbuffersOES (1, &gl_depthbuffer);
glBindRenderbufferOES (GL_RENDERBUFFER_OES, gl_depthbuffer);
glRenderbufferStorageOES (GL_RENDERBUFFER_OES, GL_DEPTH_COMPONENT16_OES,
w, h);
glFramebufferRenderbufferOES (GL_FRAMEBUFFER_OES, GL_DEPTH_ATTACHMENT_OES,
GL_RENDERBUFFER_OES, gl_depthbuffer);
#endif
[ogl_ctx renderbufferStorage:GL_RENDERBUFFER_OES
fromDrawable:(CAEAGLLayer*)self.layer];
switch (glCheckFramebufferStatusOES (GL_FRAMEBUFFER_OES)) {
...
I'm getting GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_OES. If I don't allocate the depth buffer, I get no error, but of course neither does depth testing work.