Galaxy Nexus上的白色OpenGL ES 1罐纹理

时间:2013-12-11 16:23:31

标签: android c++ opengl-es opengl-es-1.1

看起来我2的力量纹理显示为完全白色。此应用程序适用于各种设备,甚至Nexus 7,但Galaxy Nexus手机似乎产生白色纹理。这可能与PowerVR gpu有关。

我可以与应用程序进行交互,一切似乎就位,但纹理不会呈现。

我尝试了各种EGLConfig,似乎没有任何效果。

以下是我生成纹理的方法,注意没有mipmap:

glGenTextures( 1, &TextureId );
glBindTexture( GL_TEXTURE_2D, TextureId );
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
glTexParameterf( GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR );

glTexImage2D(GL_TEXTURE_2D,0,GL_RGBA,Width,Height,0,GL_RGBA,GL_UNSIGNED_BYTE,Data);

此外,GL_TEXTURE_2D已启用。

  • 纹理都是2的幂(64x512,1024x1024等)。
  • 即使设备支持2048x2048
  • ,也没有纹理超过1024x1024
  • 没有glError()eglError() s。
  • 颜色有效,我可以与我的应用互动
  • eglMakeCurrenteglCreateContext
  • 没有错误
  • 适用于我尝试过的所有其他设备(模拟器,Nexus 7(Tegra),Sony Xperia 10(Adreno 200),Galaxy S2(Mali GPU))
  • 我使用交错的VBO进行绘图
  • glEnable(GL_TEXTURE_2D);已设置
  • 资产放置在资产文件夹
  • 所有OpenGL操作都在相同的上下文和线程上进行

更新:glGenTextures()返回大量数字。

滚动自定义纹理迭代器,我能够使其正常工作。我仍然想弄清楚为什么glGenTextures不起作用。这是代码:

GLuint TextureId;
glGenTextures( 1, &TextureId );

TextureId可以达到数十亿。这只发生在Nexus手机上,所有其他设备都给了我正确的纹理ID(1,2,3,4等)。

有什么建议吗?

0 个答案:

没有答案