Android — белые текстуры OpenGL ES 1 на Galaxy Nexus

Похоже, мои текстуры с силой 2 выглядят полностью белыми. Это приложение работает на различных устройствах, даже Nexus 7, но телефон Galaxy Nexus, кажется, производит белые текстуры. Вероятно, это связано с PowerVR GPU.

Я могу взаимодействовать с приложением, все кажется на месте, но текстуры не отображаются.

Я пробовал разные EGLConfigи кажется, что ничего не работает.

Вот как я генерирую свои текстуры, не замечайте мипмапов:

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 (64×512,1024×1024 и т. Д.).
  • Ни одна из текстур не превышает 1024×1024, хотя устройство поддерживает 2048×2048
  • Нет glError()с и нет eglError()s.
  • Цвет работает, и я могу взаимодействовать с моим приложением
  • Там нет ошибок с eglMakeCurrent или же eglCreateContext
  • Работает на всех других устройствах, которые я пробовал (эмулятор, 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 Phone, все другие устройства дали мне правильные идентификаторы текстуры (1,2,3,4 и т. Д.)

Какие-либо предложения?

3

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]