Depth buffer, do you speak it

Ok anyone got any idea why I can't allocate a depth buffer in the iPhone simulator ? I'm doing:

  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.

Tags: , , , ,