我知道RGBAFormat
适用于ES 2,而RGB5A1
是ES 3的标准配置,但据我所知,它们都将数据存储为RGB,每行5位,alpha位为1位。
我正在尝试使用ES 2和ES 3共有的格式。在某些设备上,两个中只有一个工作,并且都不适用于所有。
我打电话给QOpenGLTexture::setData
QOpenGLTexture::RGBA
和QOpenGLTexture::UInt16_RGB5A1
,如果这很重要的话。
答案 0 :(得分:0)
我认为您在类型和无类型格式之间存在混淆。
RGBA与GL_UNSIGNED_BYTE与RGBA8相同
带有GL_UNSIGNED_SHORT_5_5_5_1的这是如何运作的?
在ES2中考虑这个电话:
glTexImage2D(GL_TEXTURE_2D,0,GL_RGBA,texture->m_width,texture->m_height,0,GL_RGBA,GL_UNSIGNED_BYTE,texture->m_data[0][0]);
在ES3中,可以通过两种不同的方式调用它:
glTexImage2D(GL_TEXTURE_2D,0,GL_RGBA,texture->m_width,texture->m_height,0,GL_RGBA,GL_UNSIGNED_BYTE,NULL);
glTexImage2D(GL_TEXTURE_2D,0, GL_RGBA8 的,提升口感> m_width的,提升口感> m_height,0,GL_RGBA,GL_UNSIGNED_BYTE,NULL);
对于您的具体情况,如果您想匹配不同版本之间的格式,我认为您应该坚持使用GL_RGBA8和GL_UNSIGNED_BYTE。