OpenGL纹理随机未显示

The*_*ude 8 c++ opengl textures

我的C++ OpenGL应用程序中有一个非常非常奇怪的问题.

我只需加载纹理并将其应用于二次曲面:

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);
Run Code Online (Sandbox Code Playgroud)

然后

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);
Run Code Online (Sandbox Code Playgroud)

现在:它在十分之一中完美地工作了九次,但有时纹理没有显示(二次曲线保持白色).

image装入正确,所以问题应该用OpenGL.我也尝试过几种不同的图像.永远GL_NO_ERROR.

任何的想法 ?这让我发疯了......

The*_*ude 2

找到了:)这是GLint texture在复制构造函数中未正确重新分配的成员。

但是,我仍然不明白为什么它有时会起作用......