Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Opengl es 我创建渲染缓冲区的代码在Apportable SDK上不起作用_Opengl Es_Apportable - Fatal编程技术网

Opengl es 我创建渲染缓冲区的代码在Apportable SDK上不起作用

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

在iOS上工作正常,但在apportable上不正常,可能我做错了什么:

    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