PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Java jogl läuft net


darph
2005-11-07, 16:05:24
Netmal so ein dummes Hell JOGL Programm krieg ich zum laufen. :(

Exception in thread "main" java.lang.UnsatisfiedLinkError: JAWT_GetAWT0
at net.java.games.jogl.impl.JAWTFactory.JAWT_GetAWT0(Native Method)
at net.java.games.jogl.impl.JAWTFactory.JAWT_GetAWT(JAWTFactory.java:37)
at net.java.games.jogl.impl.NativeLibLoader$1.run(NativeLibLoader.java:78)
at java.security.AccessController.doPrivileged(Native Method)
at net.java.games.jogl.impl.NativeLibLoader.load(NativeLibLoader.java:58)
at net.java.games.jogl.impl.GLContext.<clinit>(GLContext.java:52)
at net.java.games.jogl.impl.windows.WindowsGLContextFactory.createGLContext(Windows GLContextFactory.java:147)
at net.java.games.jogl.GLCanvas.<init>(GLCanvas.java:72)
at net.java.games.jogl.GLDrawableFactory.createGLCanvas(GLDrawableFactory.java:150)
at net.java.games.jogl.GLDrawableFactory.createGLCanvas(GLDrawableFactory.java:118)
at net.java.games.jogl.GLDrawableFactory.createGLCanvas(GLDrawableFactory.java:85)
at test.JOGLRotatingSquare.getGLCanvas(JOGLRotatingSquare.java:46)
at test.JOGLRotatingSquare.<init>(JOGLRotatingSquare.java:22)
at test.JOGLRotatingSquare.main(JOGLRotatingSquare.java:51)
jogl.jar und jogl natives sind jeweils vom 12. Juli 2005.

die .jar hab ich in lib\ext\ und die dlls in den bin\ Ordner (unter winxp) gepackt.


Und ehrlich zu sein, versteh ich jetzt nicht, was er von mir will. :/


package test;

import net.java.games.jogl.GLCanvas;
import net.java.games.jogl.GLCapabilities;
import net.java.games.jogl.GLDrawableFactory;
import net.java.games.jogl.Animator;
import net.java.games.jogl.GL;
import net.java.games.jogl.GLEventListener;
import net.java.games.jogl.GLDrawable;

import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

import javax.swing.JFrame;

public class JOGLRotatingSquare {

private static float angle = 0;
private static final int SIZE = 160;

JOGLRotatingSquare() {
GLCanvas canvas = getGLCanvas();
canvas.addGLEventListener(new RotatingSquareListener());
Animator anim = new Animator(canvas);
addCanvasToFrame(canvas, anim);
anim.start();
}

private void addCanvasToFrame(
GLCanvas canvas, final Animator anim) {
JFrame f = new JFrame("JOGL Rotating Square");
f.setSize(600, 400);
f.add(canvas);
f.setVisible(true);
f.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
anim.stop();
System.exit(0);
}
});
}

private GLCanvas getGLCanvas() {
GLCapabilities capabilities = new GLCapabilities();
return GLDrawableFactory.getFactory().
createGLCanvas(capabilities);
}


public static void main(String[] args) {
new JOGLRotatingSquare();
}

private void drawRedCenteredSquare(GL gl) {
gl.glColor3f(1, 0, 0);
gl.glRecti(-SIZE / 2, -SIZE / 2, SIZE / 2, SIZE / 2);
gl.glColor3f(0.0f, 0.0f, 0.0f);
}

class RotatingSquareListener implements GLEventListener {

public void init(GLDrawable drawable) {
GL gl = drawable.getGL();
gl.glClearColor(0.0f, 0.0f, 0.0f, 1.0f); //erasing color
gl.glColor3f(0.0f, 0.0f, 0.0f); // drawing color
}

public void display(GLDrawable drawable) {
GL gl = drawable.getGL();
gl.glClear(GL.GL_COLOR_BUFFER_BIT);
drawRedCenteredSquare(gl);
angle++;
gl.glMatrixMode(GL.GL_MODELVIEW);
gl.glLoadIdentity();
gl.glRotatef(angle, 0, 0, 1);
}

public void reshape(GLDrawable drawable,
int x,
int y,
int width,
int height) {
GL gl = drawable.getGL();
gl.glViewport(0, 0, width, height);
gl.glMatrixMode(GL.GL_PROJECTION);
gl.glLoadIdentity();
gl.glOrtho(-width, width, -height, height, -1, 1);
}

public void displayChanged(GLDrawable drawable,
boolean modeChanged,
boolean deviceChanged) {
}
}
}

HellHorse
2005-11-07, 16:43:54
Und ehrlich zu sein, versteh ich jetzt nicht, was er von mir will. :/]
JAWT_GetAWT0.dll im java.library.path

darph
2005-11-07, 16:54:39
JAWT_GetAWT0.dll im java.library.path
Und wo zur Hölle soll ich die her (http://www.google.de/search?hl=de&rls=GGLG%2CGGLG%3A2005-32%2CGGLG%3Ade&q=JAWT_GetAWT0.dll&meta=) kriegen? :frown:

Shink
2005-11-07, 17:07:28
Hmm... hab grad kein JOGL zur Hand, aber hast du beide DLLs im \jre\bin ?
Sonst kannst du ja mal probieren, einfach alles ins Verzeichnis deiner Anwendung zu geben, sollte auch funktionieren.
Oder installier dir Jake2, da sind .bat - Dateien dabei, mit denen alle Libraries aus einem beliebigen Verzeichnis geladen werden können.

darph
2005-11-07, 17:07:36
Ja. DIe DLLs liegen entpackt in den bins. Tangiert das JRE aber bestenfalls periphär. So wie's aussieht eher gar net.

Okay, ich hab sie jetzt mit System.load() geladen.

System.load("E:/jogl/jogl-natives-win32/jogl.dll");
System.load("E:/jogl/jogl-natives-win32/jogl_cg.dll");

Jetzt meckert er, er brauche eine cgGL.dll. Nagut. Heruntergeladen und ebenfalls importiert. Jetzt meckert er, er brauche eine cg.dll. Nagut. Heruntergeladen und ebenfalls importiert. Jetzt meckert er, er ein Prozedureinsprungpunkt wurde nicht gefunden.

Hä? :(

darph
2005-11-07, 17:28:08
Oder installier dir Jake2, da sind .bat - Dateien dabei, mit denen alle Libraries aus einem beliebigen Verzeichnis geladen werden können.
Das ist ja mal interessant.

Wenn ich die jogl DLLs aus dem Jake2 nehme, geht's.


Vielen Dank :)