Now I am wildly guessing here, but if we exclude Z-fighting and color modulation, it could be some kind of filtering artifact. To quickly switch the test between
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
and
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
if the effect changes between the two of you, some filtering somehow ruined your coloring. Decision. Use mipmaping and generate mipmap levels using the downsampling method, which preserves the desired functions. The gluBuildMipmaps standard uses a pretty dumb window filter, so don't use it.
datenwolf
source share