在过去的常规 OpenGL 中,确定纹理上传是否成功是相当容易的——在调用 glTexImage2D 之后,您可以使用带有 GL_TEXTURE_WIDTH 和 GL_TEXTURE_HEIGHT 作为参数的 glGetTexLevelParameteriv。然而,GLES 似乎不允许这样做,据我所知,它没有机制来确定纹理是否实际上已成功提供给卡(例如,glGetError 仅针对不会成功的事情设置,与没有成功的事情相反)。
我正在处理的应用程序总是跨越是否有足够的 VRAM 可用(并且经常有很多动态分配的 FBO 等飞来飞去,使事情进一步复杂化),如果重要的纹理上传失败,我需要知道我是否需要清除不重要的纹理并重试。