Pop*_*yto 1 c++ opengl opengl-es
我对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
Run Code Online (Sandbox Code Playgroud)
在创建纹理之前调用BindTexture为0已绑定:
//Let's create a new texture
glBindTexture(GL_TEXTURE_2D,0); // free the old bind texture if deleted
glGenTextures(1,&myTexture);//myTexture == 24 (as the glDelete was ok)
glBindTexture(GL_TEXTURE_2D,myTexture);
bIsTexture = glIsTexture(myTexture); //returns 1 => Ok
Run Code Online (Sandbox Code Playgroud)