我在 OpenGL 上的一个纹理有一个可怕的行为。
删除纹理后,我创建一个新的,它生成与以前相同的 tex 编号,但纹理不正确。而且 glGetError 在每一行都返回 0 !我试图在 glDeleteTextures 之后添加 glFlush/glFinish 但它没有改变任何东西!纹理编号似乎锁定在某个地方...为什么?
它是单线程的,这里的行为:
//myTexture == 24 is loaded and works correctly
GLboolean bIsTexture = glIsTexture(myTexture); //returns 1 = > ok
glDeleteTextures(1,&myTexture);
bIsTexture = glIsTexture(myTexture); //returns 0 => ok
//Let's create a new texture
glGenTextures(1,&myTexture);//myTexture == 24 (as the glDelete was ok)
glBindTexture(GL_TEXTURE_2D,myTexture);
bIsTexture = glIsTexture(myTexture); //returns 0 => FAILS