I’m trying to put textures into my Java OpenGL scene but when I do the colours of other things get skewed, as if it is blending the colours incorrectly. I am using LWJGL for OpenGL and Slick for loading the textures. When I leave the GL11.glEnable(GL11.GL_TEXTURE_2D); call uncommented the colours are darkened, but when I comment that one line the colours are correct, however I obviously have no textures.
I have put my code here http://codepaste.net/26bguu
The line in question is line 63
One work around I have found is enabling textures just before I draw the textures, then disabling again immediately after. However I feel this should be unnecessary. Below are some screenshots showing what I mean. The only difference being that one line commented vs uncommented.


You do actually need to enable and disable
GL_TEXTURE_2Das required.If
GL_TEXTURE_2Dis enabled, the GL will (normally) ignore the vertex colors you supply, and instead map the given texture coordinates to the given texture to get the color for each fragment/pixel. If you don’t pass it texture coordinates, anything could happen – like, say, the second screenshot you have posted.It’s not uncommon to have to make 20+ opengl calls to prepare for drawing each “object”. This is why OpenGL programmers spend large amounts of time combining large numbers of triangles into single buffers to be drawn at once with a single draw call – it greatly improves performance.