私のアプリケーションでは、約7から8のテクスチャを使用しています。私は複数のテクスチャリングもやっています。 glDeleteTexture cmdを使用してすべてのテクスチャを削除し、glIsTextureコマンドを使用してチェックしてから、いくつかのテクスチャに対してGL_Trueを取得すると、 glDeleteTexture()関数がテクスチャの削除に失敗した状況を知りたいですか?テクスチャがopenglで削除されない
EDIT:私のコードをデバッグして、今私は主に2つの問題があることを知ります: 私のアプリケーションの一段階で、私は3Dモデルを持っていて、 。したがって、すべてのタッチ入力で私はCreateTextureがこのコードは、すべてのタッチ入力で私にいくつかの漏れを与えている
UploadImage(file);
GLuint name;
glEnable(GL_TEXTURE_2D);
glGenTextures(1, &name);
glBindTexture(GL_TEXTURE_2D, name);
glTexEnvf(GL_TEXTURE_2D, GL_TEXTURE_ENV_MODE, GL_DECAL);
glTexParameterf(GL_TEXTURE_2D, GL_GENERATE_MIPMAP, GL_TRUE);
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
GLfloat fLargest;
glGetFloatv(GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT, &fLargest);
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAX_ANISOTROPY_EXT, fLargest);
glTexImage2D(GL_TEXTURE_2D, level, format, w, h, 0, format, type, data);
UnloadImage();
の下に与えられている次のコード
glDeleteTextures(1, &tex1);
switch(case)
{
case 1:
tex1 = CreateTexture("xyz.pvr");
break;
case 2:
tex1 = CreateTexture("abc.pvr");
...
...
を呼び出しています。 第二に、最後に私がチェックし、次comands
glDeleteTextures(1, &tex1);
glDeleteTextures(1, &tex2);
glDeleteTextures(1, &tex3);
glDeleteTextures(1, &tex4);
glDeleteTextures(1, &tex5);
glDeleteTextures(1, &tex6)
を使用して、すべてのテクスチャを削除していますすべてのテクスチャを解放し、別のdata.Soをロードする必要がいずれかの削除または
glIsTexture(tex1);
glIsTexture(tex2);
glIsTexture(tex3);
glIsTexture(tex4);
glIsTexture(tex5);
glIsTexture(tex6);
を使用していないが、いくつかのテクスチャについて真実になっています。
あなたは、削除が失敗したコードの短いスニペットに、この問題を軽減することができますか? – Kos