I am trying to load earth.png and place it over a triangle. The image is 256x256. I have followed an online tutorial and played around with this for hours, but the triangle still remains white. Can any one point me in the right direction.
import java.awt.Frame; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import java.io.IOException; import java.io.InputStream; import javax.media.opengl.*; import javax.media.opengl.awt.GLCanvas; import com.jogamp.opengl.util.texture.Texture; import com.jogamp.opengl.util.texture.TextureData; import com.jogamp.opengl.util.texture.TextureIO; public class test implements GLEventListener { private Texture earthTexture; public static void main(String[] args) { GLProfile glp = GLProfile.getDefault(); GLCapabilities caps = new GLCapabilities(glp); GLCanvas canvas = new GLCanvas(caps); final Frame frame = new Frame("AWT Window Test111"); frame.setSize(700, 700); frame.add(canvas); frame.setVisible(true); // by default, an AWT Frame doesn't do anything when you click // the close button; this bit of code will terminate the program when // the window is asked to close frame.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { frame.dispose(); System.exit(0); } }); canvas.addGLEventListener(new test()); } @Override public void display(GLAutoDrawable arg0) { update(); render(arg0); } private void update() { // TODO Auto-generated method stub } private void render(GLAutoDrawable drawable) { GL2 gl = drawable.getGL().getGL2(); gl.glClear(GL.GL_COLOR_BUFFER_BIT); gl.glEnable(GL.GL_TEXTURE_2D); gl.glBegin(GL2.GL_TRIANGLES); // Begin drawing triangle sides earthTexture.enable(); earthTexture.bind(); // gl.glColor3f( 1.0f, 0.0f, 0.0f); // Set colour to red gl.glTexCoord2f(0.0f, 0.0f); gl.glVertex3f( 0.0f, 1.0f, 1.0f); // Top vertex gl.glTexCoord2f(-1.0f, -2.0f); gl.glVertex3f(-1.0f,-1.0f, 0.0f); // Bottom left vertex gl.glTexCoord2f(1.0f, -2.0f); gl.glVertex3f( 1.0f,-1.0f, 0.0f); // Bottom right vertex gl.glEnd(); } @Override public void dispose(GLAutoDrawable arg0) { // TODO Auto-generated method stub } @Override public void init(GLAutoDrawable arg0) { GL2 gl = arg0.getGL().getGL2(); // Load texture. try { InputStream stream = getClass().getResourceAsStream("earth.png"); TextureData data = TextureIO.newTextureData(gl.getGLProfile(), stream, 100, 200, false, "png"); earthTexture = TextureIO.newTexture(data); } catch (IOException exc) { exc.printStackTrace(); System.exit(1); } } @Override public void reshape(GLAutoDrawable arg0, int arg1, int arg2, int arg3, int arg4) { // TODO Auto-generated method stub } }