Code: Select all
gl_TexCoord[0] = gl_TextureMatrix[0] * gl_MultiTexCoord0;
Code: Select all
gl_TexCoord[0] = gl_MultiTexCoord0;
You must multiply "gl_TextureMatrix[yourTexUnit]" and texcoord if you use shaders and you want to use auto-flipping feature in v1.8. In trunk "gl_TextureMatrix[yourTexUnit]" isn't active (no overhead due to that), you must pass texture matrix via uniform yourself, it's the only difference.
Why it works like that? If you use vertex shader you have a full control over vertex transformation (no auto transformation by fixed pipeline at this step).
I tested posted sample with both v1.8.3 (up-to date from SVN) and the latest trunk and it looks the same in both cases. Why it "works" on your platform in v1.8? IIRC you have Nvidia card. NV drivers allow developers to do a strange things with OpenGL I think that mul by gl_TextureMatrix[0] may be done under the hood by NV drivers, but it's not allowed by OGL specification...