Структура OpenGL, случайным образом не показанная

Я имею очень, очень странная проблема в моем приложении OpenGL C++.

Я просто загружаю структуру и применяю ее к квадрике:

glGenTextures(1, &tex);
glBindTexture(GL_TEXTURE_2D, tex);
glTexImage2D(GL_TEXTURE_2D, 0, 3, width, height, 0, GL_RGB, GL_UNSIGNED_BYTE, image);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);

Затем

glEnable(GL_TEXTURE_2D);
glBindTexture(GL_TEXTURE_2D, tex);
gluQuadricDrawStyle(quad,GLU_FILL);
gluQuadricTexture(quad,GL_TRUE);
gluCylinder(quad,1,0,2,20,1);
glDisable(GL_TEXTURE_2D);

Теперь: это работает отлично 9 раз из десять, но иногда структуру не показывают (квадрика остается белой).

image правильно загружается, таким образом, проблема должна быть с OpenGL. Я попробовал несколькими различными изображениями также. Всегда GL_NO_ERROR.

Какая-либо идея? Это сводит меня с ума...

8
задан TheDude 27 April 2010 в 19:02
поделиться

2 ответа

Найдено :) Это был член GLint texture , который неправильно перераспределен в конструкторе копирования.

Однако я до сих пор не понимаю, почему это иногда срабатывало ...

2
ответ дан 6 December 2019 в 00:54
поделиться

Код, который вы используете, кажется действительным. Вы ...

  • пытались использовать простой четырехугольник вместо квадрики
  • убедились, что изображение заполнено правильно
  • проверено, что текс не изменено где-то еще
  • заверили, что никакие другие программы не используют opengl одновременно
  • перезагружали ваш компьютер;)
1
ответ дан 6 December 2019 в 00:54
поделиться
Другие вопросы по тегам:

Похожие вопросы: