Hi DRC, MSC Mentat uses an RGB visual but occasionally calls glIndexi() instead of glXColor3f().
I could not find any specification to say what is supposed to happen in that case. All the OpenGL implementations I've tested simply ignore glIndex() on an RGB visual (glGetError() returns nothing), but VirtualGL always emulates CI rendering and converts the index value to RGB. The result is that when using VirtualGL some drawing is wrong e.g. the RGB conversion of glIndex(0) produces a black rubberband drawn over a black background, whereas sans-VGL the previous (non-black) glColor still has effect. The glIndex hooks assume that if you're calling glIndex you must have a CI context current (from app perspective), but as above that's not always correct. A possible automatic fix would be to allow the glIndex to pass through unmodified if the current context (again, from app perspective) is RGB. Having only glanced at the surface of this, tracking the app rendering type perspective would seem to involve some complication of mapping the rendering type bit used in any glXChoose*() calls to contexts eventually created with the returned Visual/FBConfig ids. A simpler approach might just be VGL_CIEMULATION=0 Do you have any comments or preferred approach before I submit a patch? Thanks, -Nathan ------------------------------------------------------------------------------ Slashdot TV. Video for Nerds. Stuff that matters. http://tv.slashdot.org/ _______________________________________________ VirtualGL-Devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/virtualgl-devel
