- return getTextureLevelDesc(context, object_name, texture_level, desc);
+
+ GLint bound_texture = 0;
+ if (texture_face != 0) {
+ glGetIntegerv(GL_TEXTURE_BINDING_CUBE_MAP, &bound_texture);
+ getActiveTextureLevelDesc(context, texture_face, texture_level, desc);
+ glBindTexture(GL_TEXTURE_CUBE_MAP, bound_texture);
+ } else {
+ GLenum texture_target = getTextureTarget(object_name);
+ GLenum texture_binding = getTextureBinding(texture_target);
+ glGetIntegerv(texture_binding, &bound_texture);
+ glBindTexture(texture_target, object_name);
+ getActiveTextureLevelDesc(context, texture_face, texture_level, desc);
+ glBindTexture(texture_binding, bound_texture);
+ }
+
+ return desc.valid();