Problem with glTranslateF

I ve downloaded new jogl and natives. Then i fixed some of old nehe tutorials(6 and 7) to use that GLAutoDrawable instead of GLDrawable and canvas instancing.

But the problem occurs when i try to use glTranslateF method. It simply doesnt draw anything.Those tutorials worked fine with previous jogl with those drawables. Is there something i m missing?

Could you post some code? There isn’t anything specifically different with glTranslatef so the problem must be elsewhere.

Ok here is the code for that nehe tutorial num 6:



import java.awt.*;
import java.awt.event.*;
import javax.media.opengl.GL;
import javax.media.opengl.GLAutoDrawable;
import javax.media.opengl.GLCanvas;
import javax.media.opengl.GLEventListener;

import com.sun.opengl.util.Animator;


public class Lesson06 {
	static Animator animator = null;
	static class Renderer implements GLEventListener, KeyListener {
		private float xrot; // X Rotation ( NEW )
		private float yrot; // Y Rotation ( NEW )
		private float zrot; // Z Rotation ( NEW )
		private int texture;

		public void display(GLAutoDrawable gLDrawable) {
			final GL gl = gLDrawable.getGL();
			gl.glClear(GL.GL_COLOR_BUFFER_BIT | GL.GL_DEPTH_BUFFER_BIT);
			gl.glLoadIdentity(); // Reset The View
			gl.glTranslatef(0.0f, 0.0f, -5.0f);

			gl.glRotatef(xrot, 1.0f, 0.0f, 0.0f);
			gl.glRotatef(yrot, 0.0f, 1.0f, 0.0f);
			gl.glRotatef(zrot, 0.0f, 0.0f, 1.0f);

			gl.glColor3f(1.0f, 0.0f, 0.0f );
			gl.glBegin(GL.GL_QUADS);
			// Front Face
			gl.glVertex3f(-1.0f, -1.0f, 1.0f);
			gl.glVertex3f(1.0f, -1.0f, 1.0f);
			gl.glVertex3f(1.0f, 1.0f, 1.0f);
			gl.glVertex3f(-1.0f, 1.0f, 1.0f);
			// Back Face
			gl.glVertex3f(-1.0f, -1.0f, -1.0f);
			gl.glVertex3f(-1.0f, 1.0f, -1.0f);
			gl.glVertex3f(1.0f, 1.0f, -1.0f);
			gl.glVertex3f(1.0f, -1.0f, -1.0f);
			// Top Face
			gl.glVertex3f(-1.0f, 1.0f, -1.0f);
			gl.glVertex3f(-1.0f, 1.0f, 1.0f);
			gl.glVertex3f(1.0f, 1.0f, 1.0f);
			gl.glVertex3f(1.0f, 1.0f, -1.0f);
			// Bottom Face
			gl.glVertex3f(-1.0f, -1.0f, -1.0f);
			gl.glVertex3f(1.0f, -1.0f, -1.0f);
			gl.glVertex3f(1.0f, -1.0f, 1.0f);
			gl.glVertex3f(-1.0f, -1.0f, 1.0f);
			// Right face
			gl.glVertex3f(1.0f, -1.0f, -1.0f);
			gl.glVertex3f(1.0f, 1.0f, -1.0f);
			gl.glVertex3f(1.0f, 1.0f, 1.0f);
			gl.glVertex3f(1.0f, -1.0f, 1.0f);
			// Left Face
			gl.glVertex3f(-1.0f, -1.0f, -1.0f);
			gl.glVertex3f(-1.0f, -1.0f, 1.0f);
			gl.glVertex3f(-1.0f, 1.0f, 1.0f);
			gl.glVertex3f(-1.0f, 1.0f, -1.0f);
			gl.glEnd();

			xrot += 0.3f;
			yrot += 0.2f;
			zrot += 0.4f;
		}
		public void displayChanged(GLAutoDrawable gLDrawable,
				boolean modeChanged, boolean deviceChanged) {
		}
		public void init(GLAutoDrawable gLDrawable) {
			final GL gl = gLDrawable.getGL();
			gl.glShadeModel(GL.GL_SMOOTH); // Enable Smooth Shading
			gl.glClearColor(0.0f, 0.0f, 0.0f, 0.5f); // Black Background
			gl.glClearDepth(1.0f); // Depth Buffer Setup
			gl.glEnable(GL.GL_DEPTH_TEST); // Enables Depth Testing
			gl.glDepthFunc(GL.GL_LEQUAL); // The Type Of Depth Testing To Do
			gl.glHint(GL.GL_PERSPECTIVE_CORRECTION_HINT, GL.GL_NICEST); // Really Nice Perspective Calculations
			gLDrawable.addKeyListener(this);

		}
		public void reshape(GLAutoDrawable gLDrawable, int x, int y, int width,
				int height) {
			final GL gl = gLDrawable.getGL();

			if (height <= 0) // avoid a divide by zero error!
				height = 1;
			final float h = (float) width / (float) height;
			gl.glViewport(0, 0, width, height);
			gl.glMatrixMode(GL.GL_PROJECTION);
			gl.glLoadIdentity();
			gl.glMatrixMode(GL.GL_MODELVIEW);
			gl.glLoadIdentity();
		}
		public void keyPressed(KeyEvent e) {
			if (e.getKeyCode() == KeyEvent.VK_ESCAPE) {
				animator.stop();
				System.exit(0);
			}
		}
		public void keyReleased(KeyEvent e) {
		}
		public void keyTyped(KeyEvent e) {
		}
	}
	public static void main(String[] args) {
		Frame frame = new Frame("Lesson 6: Texture Mapping");
		GLCanvas canvas = new GLCanvas();
		canvas.addGLEventListener(new Renderer());
		frame.add(canvas);
		frame.setSize(640, 480);
		animator = new Animator(canvas);
		frame.addWindowListener(new WindowAdapter() {
			public void windowClosing(WindowEvent e) {
				animator.stop();
				System.exit(0);
			}
		});
		frame.show();
		animator.start();
		canvas.requestFocus();
	}
}


I ve removed the texture mapping stuff. The line in display method which calls that gltranslatef method gives me trouble.

Are you supposed to have an identity matrix for your projection matrix? Generally you will want to use gluOrtho or gluPerspective instead of glIdentity().

Hmm…could any1 send me some simple code where this translation works? I would be very grateful.

Tnx.

The Gears demo in the jogl-demos source tree uses glTranslatef. I’d recommend you go step-by-step through the code and compare what’s going on to the original version if this is a port.