我正在尝试创建一个屏幕外帧缓冲区,我可以在其中进行一些OpenGL绘图,然后手动拉出这些位。我按照说明here,但在步骤4中,状态为0而不是GL_FRAMEBUFFER_COMPLETE_OES。
如果我在每次调用gl之后插入对glGetError()的调用,则每次都返回0(GL_NO_ERROR)。但是,变量的值在调用期间不会改变。例如,
GLuint framebuffer;
glGenFramebuffersOES(1, &framebuffer);
glBindFramebufferOES(GL_FRAMEBUFFER_OES, framebuffer);
帧缓冲的值根本不会改变(即使我将其更改为某个任意值并重新执行)。这几乎就像gl调用实际上并没有被制作出来。我正在链接OpenGLES框架,并且没有编译,链接或运行时错误(或警告)。
我不知道下一步该做什么。我已经尝试继续我的绘图,但没有看到我期望的结果,但此时我无法判断是因为上述错误,还是转换为UIImage。
答案 0 :(得分:0)
当您尝试创建FBO时,这听起来似乎没有活动的GL上下文。
编辑:为了完整起见,这里是how to create an OpenGL ES 1.1 context并激活它:
EAGLContext* myContext = [[EAGLContext alloc] initWithAPI:kEAGLRenderingAPIOpenGLES1];
[EAGLContext setCurrentContext: myContext];