如何解决从Android上的framebuffer中读取
我尝试从Android(GLES 3.1)上的默认帧缓冲区中获取数据。 Andriod 6.0版。设备:Levono TAB 2 A-10。 如果我使用glreadPixels可以正常工作,但是我想避免将数据复制到cpu并将此数据绑定到计算着色器。 代码如下:
glreadBuffer(GL_BACK);
gluint texture;
glGenTextures(1,&texture);
glBindTexture(GL_TEXTURE_2D,texture);
glTexParameterf(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_LINEAR);
glTexParameterf(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_TEXTURE_WRAP_S,GL_CLAMP_TO_EDGE);
glTexParameterf(GL_TEXTURE_2D,GL_TEXTURE_WRAP_T,GL_CLAMP_TO_EDGE);
glTexStorage2D(GL_TEXTURE_2D,1,GL_RGBA8,300,250);
glcopyTexImage2D(GL_TEXTURE_2D,GL_RGBA,250,0);
在glcopyTexImage2D之后,我得到了ERROR: 1282 (GL_INVALID_OPERATION)
从文档中获得的含义是:如果当前绑定的帧缓冲区的格式不包含internalformat基本格式所需的组件的超集,则生成GL_INVALID_OPERATION。
我尝试了不同格式的纹理,但没有成功。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。