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

Reply via email to