T
the_gregg
Gast
hallo Forum-User,
ich habe mit Jogl angefangen und diverse Tutorials gemacht. Da allerdings die Meisten nicht ausführlich genug sind, oder nach kurzer Zeit so komplex werden, dass ich als Anfänger nicht mehr durchblicke (weil z.T. auch nicht erklärt) wollte ich ein ganz einfaches Projekt machen, wo ich nur ein einziges Rechteck dargestellt wird und ich jeden schritt begreife. Es ist mir aber nicht gelungen das Rechteck dargestellt zu bekommen, obwohl der code den ich verwende sehr nahe an dem der Tutorials ist. Wenigstens ein schwarzer leerer Frame mit OpenGL konnte ich hinkriegen.
Hier der Code der Main-Klasse:
Die SimpleGLEventListener-Klasse:
Da ich nicht erwarten kann, dass mir jemand alles neu schreibt oder verbessert, möchte ich fragen, ob mir jemand wenigstens einen Tipp geben kann, was falsch ist, oder wie ich den Fehler lokalisieren könnte.
Danke im Voraus und MfG
the_gregg
ich habe mit Jogl angefangen und diverse Tutorials gemacht. Da allerdings die Meisten nicht ausführlich genug sind, oder nach kurzer Zeit so komplex werden, dass ich als Anfänger nicht mehr durchblicke (weil z.T. auch nicht erklärt) wollte ich ein ganz einfaches Projekt machen, wo ich nur ein einziges Rechteck dargestellt wird und ich jeden schritt begreife. Es ist mir aber nicht gelungen das Rechteck dargestellt zu bekommen, obwohl der code den ich verwende sehr nahe an dem der Tutorials ist. Wenigstens ein schwarzer leerer Frame mit OpenGL konnte ich hinkriegen.
Hier der Code der Main-Klasse:
Code:
package view;
import model.*;
import java.awt.*;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import net.java.games.jogl.GLCanvas;
import net.java.games.jogl.GLCapabilities;
import net.java.games.jogl.GLDrawableFactory;
public class Main {
/**
* @param args
*/
public static void main(String[] args) {
Frame frame = new Frame("Test");
GLCanvas canvas = GLDrawableFactory.getFactory().createGLCanvas(new GLCapabilities());
frame.add(canvas);
frame.setSize(300, 300);
frame.setResizable(false);
frame.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
}
);
canvas.addGLEventListener(new SimpleGLEventListener());
frame.setVisible(true);
}
}
Die SimpleGLEventListener-Klasse:
Code:
package model;
import net.java.games.jogl.*;
public class SimpleGLEventListener implements GLEventListener {
public SimpleGLEventListener() {
}
public void init(GLDrawable arg0) {
GL gl = arg0.getGL(); //Grafik-Bibliothek für dieses Canvas erzeugen..
gl.glClear(GL.GL_COLOR_BUFFER_BIT | GL.GL_DEPTH_BUFFER_BIT); //Grafikkartenbuffer leeren..
gl.glLoadIdentity(); //Achsenkreuz an Bildschirm anpassen (x nach links,rechts; y oben,unten; z vorne,hinten)
gl.glTranslatef(-1.5f, 0.0f, 6.0f); //Kamera rumwandern lassen
gl.glBegin(GL.GL_QUADS); //Rechteck zeichnen
gl.glVertex3f(-1.0f, 0.5f, 1.0f);
gl.glVertex3f( 1.0f, 0.5f, 1.0f);
gl.glVertex3f( 1.0f, 0.5f,-1.0f);
gl.glVertex3f(-1.0f, 0.5f,-1.0f);
gl.glEnd();
}
public void display(GLDrawable arg0) {
}
public void reshape(GLDrawable arg0, int arg1, int arg2, int arg3, int arg4) {
}
public void displayChanged(GLDrawable arg0, boolean arg1, boolean arg2) {
}
}
Da ich nicht erwarten kann, dass mir jemand alles neu schreibt oder verbessert, möchte ich fragen, ob mir jemand wenigstens einen Tipp geben kann, was falsch ist, oder wie ich den Fehler lokalisieren könnte.
Danke im Voraus und MfG
the_gregg