//
// This is a patch for the Inventor 2.0 Texture code, which can
// send bad display lists indices to OpenGL. The results can be
// anything from nothing (OpenGL interprets the command as an empty
// display list), to random OpenGL calls being made (if the display
// list index already exists), to a core dump.
//
//
// To apply this patch, compile this file into a .o and then link
// the .o before -lInventor. The linker may give a warning.
// This is normal and expected.
//
#include
void
SoGLTextureImageElement::pop(SoState *state, const SoElement *)
{
// Empty texture, don't need to do anything-- the
// GLTextureEnabledElement will turn off texturing.
if (size[0] == 0 || size[1] == 0 || numComponents == 0) {
return;
}
// Since popping this element has GL side effects, make sure any
// open caches capture it
capture(state);
// Restore previous texture image (if any)
send(state);
}
http://www.sgi.com/tech/Inventor/workarounds/TexturePop2.0.C
(possibly inaccurate URL)
01/1995