It’s probably because you are not specifying a specific internal pixelformat. It’s the second parameter in gluBuild2DMipmaps() thats causing the problem. You are only telling OpenGL to use RGB format, but not how may bits in each element, and therefore the driver chooses a default one, probably RGB5 (5 bits for each element) or something similar. Try set the second parameter to something like RGB8, which tells OpenGL that you want 8 bits per element.