Я имею очень, очень странная проблема в моем приложении 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
.
Какая-либо идея? Это сводит меня с ума...
Найдено :) Это был член GLint texture
, который неправильно перераспределен в конструкторе копирования.
Однако я до сих пор не понимаю, почему это иногда срабатывало ...
Код, который вы используете, кажется действительным. Вы ...
изображение
заполнено правильно текс
не изменено где-то еще