微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

从Android上的framebuffer中读取

如何解决从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 举报,一经查实,本站将立刻删除。