Opengl es 我创建渲染缓冲区的代码在Apportable SDK上不起作用
在iOS上工作正常,但在apportable上不正常,可能我做错了什么:Opengl es 我创建渲染缓冲区的代码在Apportable SDK上不起作用,opengl-es,apportable,Opengl Es,Apportable,在iOS上工作正常,但在apportable上不正常,可能我做错了什么: GLsizei height = _glview.drawableHeight; GLsizei width = _glview.drawableWidth; if (pickingFramebuffer == 0) { glGenFramebuffers(1, &pickingFramebuffer); } glBindFramebuffer(GL_FR
GLsizei height = _glview.drawableHeight;
GLsizei width = _glview.drawableWidth;
if (pickingFramebuffer == 0) {
glGenFramebuffers(1, &pickingFramebuffer);
}
glBindFramebuffer(GL_FRAMEBUFFER, pickingFramebuffer);
if (pickingColorRenderbuffer == 0) {
glGenRenderbuffers(1, &pickingColorRenderbuffer);
}
glBindRenderbuffer(GL_RENDERBUFFER, pickingColorRenderbuffer);
glRenderbufferStorage(GL_RENDERBUFFER, GL_RGBA8, width, height);
glFramebufferRenderbuffer(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_RENDERBUFFER, pickingColorRenderbuffer);
if (pickingDepthRenderbuffer == 0) {
glGenRenderbuffers(1, &pickingDepthRenderbuffer);
}
glBindRenderbuffer(GL_RENDERBUFFER, pickingDepthRenderbuffer);
glRenderbufferStorage(GL_RENDERBUFFER, GL_DEPTH_COMPONENT24, width, height);
glFramebufferRenderbuffer(GL_FRAMEBUFFER, GL_DEPTH_ATTACHMENT, GL_RENDERBUFFER, pickingDepthRenderbuffer);
GLenum status = glCheckFramebufferStatus(GL_FRAMEBUFFER);
if (status != GL_FRAMEBUFFER_COMPLETE) {
NSLog(@"Framebuffer status: %x", (int)status);
}
日志:
非常感谢
编辑:
如果我将添加到everyone函数和opengl指令OES,则帧缓冲区状态将为0
编辑2:好的,这是一个错误这个问题似乎离题了,因为它是关于软件中的错误,目前没有任何解决方案。关于bug报告的链接目前有一个黑客可以使iOS opengles代码与Android对opengles的期望更容易集成。您创建的第一个帧缓冲区和renderbuffer返回默认帧缓冲区,renderbuffer返回默认值时id为0。如果此代码用于主渲染窗口,请尝试不检查0。如果这是辅助renderbuffer,请确保首先设置了主renderbuffer。一旦您了解Apportable将返回默认帧缓冲区,并且不需要您的大部分设置代码,通常可以直接解决这些问题。谢谢,我将重试。使用这段代码,我正在尝试创建第二个renderbuffer,目前没有运气。返回0或GL\u帧缓冲区\u不完整\u附件。如果你有时间,你能提供一些工作版本吗?
Framebuffer status: GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT