After reading the GL 1.2.1 spec which supposedly contains a verbatim copy of the ARB_multitexture spec, It seems to me as if Mesa's implementation of InterleavedArrays is incorrect.
Currently, specifying an interleaved array with a texcoord part assigns the texcoords to TMU 0 and disables GL_TEXTURE_COORD_ARRAY for all others
Specifying an interleaved array without a texcoord part disables GL_TEXTURE_COORD_ARRAY for all TMUs
Reading the ARB_multitexture / 1.2.1 spec, it appears to me that the correct behavior is:
1) If texcoord is specified in the interleaved array, assign the texcoords to the current client TMU and enable GL_TEXTURE_COORD_ARRAY in same
2) otherwise, disable GL_TEXTURE_COORD_ARRAY in the current client TMU
The support for this is given in the interleaved arrays section of the spec, which says that a call to interleaved arrays is equivalent to a given code block.
In that code block, there are no calls to ClientActiveTextureARB, and the multitexture spec doesn't change this either. Therefore, we can't touch
anything other than the current TMU since the equivalent code doesn't either.
Also, current behavior doesn't really make sense
Here is a patch that should give correct behavior:
I was looking at this a while back myself, but forgot to revisit it. I think you're right. The OpenGL SI is consistant with the spec too so I'll go ahead and apply your patch.
Thanks!
-Brian
------------------------------------------------------- This SF.Net email is sponsored by: IBM Linux Tutorials Free Linux tutorial presented by Daniel Robbins, President and CEO of GenToo technologies. Learn everything from fundamentals to system administration.http://ads.osdn.com/?ad_id=1470&alloc_id=3638&op=click -- _______________________________________________ Dri-devel mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/dri-devel
