코드 시작 부분에 여러 텍스처를 설정했습니다 (C). 각각의 텍스처는 (에러없이) 올바르게 생성되고 나중에 사용할 수 있도록 이미지 구조에 텍스처 이름을 GLuint로 저장합니다. 프로그램 끝에서 GLuint는 GLdeleteTextures()로 다시 전달되고 프로그램이 종료됩니다.OpenGL GLDeleteTextures()가 첫 번째 텍스처를 삭제하지 못합니다.
문제는 GLDeleteTextures()를 처음 사용할 때 오류가 계속 발생하는 것입니다. 이후의 모든 GLDeleteTextures() 호출은 오류를 생성하지 않습니다.
오류 (gluErrorString에서)에 '잘못된 열거 자'가 나와 있습니다.
추가 정보 모든 텍스처는 glBindTexture (GL_TEXTURE_2D, NULL) 호출로 삭제되기 전에 바인딩 해제됩니다. 모든 텍스처 이름 (GLuints)은 생성시 확인되며 삭제할 때 사용되는 것과 동일한 이름입니다. 삭제할 때의 텍스처 순서가 중요하지 않으므로 삭제하는 것이 가장 좋습니다.
현재 해결 방법. 나는 ... 예를 들어 첫 번째 텍스처 작품에()
glDeleteTextures(1,&MyImage->texName); // Will produce 'invalid enumerant'
glDeleteTextures(1,&MyImage->texName); // This time it will work!
을 glDeleteTextures을 반복하는 것은 내가 두 번째 삭제 후 새로운 텍스처를 생성하고 텍스처 이름을 비교하여 위의 코드를 검사 한 것으로 나타났습니다. 텍스처는 실제로 두 번째 호출 후에 삭제되고 다시 시스템에 올바르게 배치됩니다.
나는 레드 북을 가지고 있으며 텍스처 삭제시 다소 모호합니다. 텍스처를 올바르게 삭제하기 위해 명시해야하는 일련의 단계가 있습니까?
해당 라인이 오류를 생성하고 있습니까? glDeleteTextures 전에 이전 호출에서 오류가 보류중인 것 같습니다. 첫 번째 deleteTextures 전에 오류 검사 행을 이동하십시오. – Tim
문제를 나타내는 [SSCCE] (http://sscce.org/)를 게시하십시오. – genpfault
방금 같은 결론에 도달했습니다. glDeleteTextures가 아닙니다. glEnable (GL_ALPHA)에서 오는 것 같습니다. 유령 같은. 고맙습니다. – Hol101