开发者

Creating offscreen OpenGL ES surfaces on iPhone: fails to attach

开发者 https://www.devze.com 2022-12-17 18:00 出处:网络
I\'m using an EAGL context and view for my application\'s normal screen rendering. This involves (as expected) creating and binding a renderbuffer and framebuffer to the view\'s CAEAGLLayer. This work

I'm using an EAGL context and view for my application's normal screen rendering. This involves (as expected) creating and binding a renderbuffer and framebuffer to the view's CAEAGLLayer. This works as expected.

However, at some times, I want to use OpenGL to render some geometry fully offscreen (for the purpose of getting the resulting raw pixels.)

I set up an offscreen surface the wa开发者_StackOverflow中文版y the Apple docs tell me to here. I won't post the code I'm using (unless someone asks me) since it is verbatim what is given on that page under "Offscreen framebuffer objects".

But in the final step, glCheckFramebufferStatusOES always returns the failure GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_OES instead of the expected success. I thought initially that this was happening because there was already a framebuffer (the CAEAGLLayer one) bound, but the problem persists even if I destroy that framebuffer before creating the offscreen one.

Can anyone point me in the right direction on how to make this work? Perhaps I'm misunderstanding something fundamental about the GL pipeline (would not be the first time).

Thanks!


(Many thanks to GavinB for his helpfully leading comment on the question.)

The call to glRenderbufferStorageOES was failing. glGetError() returned GL_INVALID_VALUE. The constants were all legit, so I cranked down the width and height params to very small, and succeeded here. Seems like there's an upper bound on the size of the surface I can create-- I'm not sure if the error means "you ran out of memory during allocation" or "there's a hard limit on dimensions regardless of ambient free memory" (can anyone enlighten me?).

Is there such a thing as an OpenGL API reference (e.g. from Apple) with information specific to the iPhone? Many behaviors/limits are implementation specific, and it would be awesome to be able to look that stuff up in advance, rather than getting generic stuff when using Google...

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号