The following code is the method to render a single cube in my JOGL practice app:
public void render(GL gl)
{
texture.enable();
gl.glTexParameteri(GL.GL_TEXTURE_2D, GL.GL_TEXTURE_MAG_FILTER, GL.GL_NEAREST);
texture.bind(); // textures clockwise from top left when
// facing
gl.glBegin(GL.GL_QUADS);
// north facing side
if (renderSide[0])
{
gl.glNormal3i(0, 1, 0);
gl.glTexCoord2f(0.0f, 0.0f);
gl.glVertex3fv(v2, 0);
gl.glTexCoord2f(1.0f, 0.0f);
gl.glVertex3fv(v1, 0);
gl.glTexCoord2f(1.0f, 1.0f);
gl.glVertex3fv(v5, 0);
gl.glTexCoord2f(0.0f, 1.0f);
gl.glVertex3fv(v6, 0);
}
// east facing side
if (renderSide[1])
{
gl.glNormal3i(1, 0, 0);
gl.glTexCoord2f(0.0f, 0.0f);
gl.glVertex3fv(v3, 0);
gl.glTexCoord2f(1.0f, 0.0f);
gl.glVertex3fv(v2, 0);
gl.glTexCoord2f(1.0f, 1.0f);
gl.glVertex3fv(v6, 0);
gl.glTexCoord2f(0.0f, 1.0f);
gl.glVertex3fv(v7, 0);
}
// south facing side
if (renderSide[2])
{
gl.glNormal3i(0, -1, 0);
gl.glTexCoord2f(0.0f, 0.0f);
gl.glVertex3fv(v4, 0);
gl.glTexCoord2f(1.0f, 0.0f);
gl.glVertex3fv(v3, 0);
gl.glTexCoord2f(1.0f, 1.0f);
gl.glVertex3fv(v7, 0);
gl.glTexCoord2f(0.0f, 1.0f);
gl.glVertex3fv(v8, 0);
}
// west facing side
if (renderSide[3])
{
gl.glNormal3i(-1, 0, 0);
gl.glTexCoord2f(0.0f, 0.0f);
gl.glVertex3fv(v1, 0);
gl.glTexCoord2f(1.0f, 0.0f);
gl.glVertex3fv(v4, 0);
gl.glTexCoord2f(1.0f, 1.0f);
gl.glVertex3fv(v8, 0);
gl.glTexCoord2f(0.0f, 1.0f);
gl.glVertex3fv(v5, 0);
}
// top side
if (renderSide[4])
{
gl.glNormal3i(0, 0, 1);
gl.glTexCoord2f(0.0f, 0.0f);
gl.glVertex3fv(v1, 0);
gl.glTexCoord2f(1.0f, 0.0f);
gl.glVertex3fv(v2, 0);
gl.glTexCoord2f(1.0f, 1.0f);
gl.glVertex3fv(v3, 0);
gl.glTexCoord2f(0.0f, 1.0f);
gl.glVertex3fv(v4, 0);
}
gl.glEnd();
texture.disable();
This code is called for every Cube, which are each initialised identically, however the texture for some is treated differently and 'blurred', while the rest are not,
Here is an image:
This render method is called every frame for each block, so how is it that the problem manifest's itself for a single block permanently?
Also as a side question, my app as it is has a substantial memory leak I cannot track down, is the problem here? other than setting the camera and light sources this is the majority of the OpenGL code!
GL_TEXTURE_MAG_FILTER
is per-texture-object state. Bind your texture object, then set it.