# Problem mit Jogl



## BattleMaster246 (5. Jun 2011)

Hay,

ich wollte eben auf meinem neuen Ubuntu-10.04 64bit System Jogl wieder installieren.
Habe openJDK6 installiert + JRE und die Dateien von Jogamp.org eigentlich richtig installiert.
Leider kommt folgender Fehler:


```
/home/lennard/Arbeitsfläche/trunk/MC2DJNR-Editor/src/main/mf.java:697: cannot find symbol
symbol  : constructor GLCapabilities()
location: class javax.media.opengl.GLCapabilities
            GLCapabilities glc = new GLCapabilities();
```

Ich benutze Netbeans 7.0 und bei meinem Projekt sind unter dem Punkt "Libraries" gluegen-rt und jogl geladen, in denen sich die GLCapabilities-Klasse befindet. Nun wundere ich mich, wieso er die nicht findet.


----------



## Marco13 (5. Jun 2011)

Die Klasse findet er schon, aber den Konstruktor nicht. Man muss (in der neuesten Version, im Moment) noch ein Profile mitgeben:
GLProfile profile = GLProfile.get(GLProfile.GL3);
GLCapabilities capabilities = new GLCapabilities(profile);

Michael Bien's Weblog : JOGL 2 - OpenGL Profiles explained


----------



## BattleMaster246 (5. Jun 2011)

Danke, hat funktioniert, doch jetzt kommen weitere Fehler, die meisten wegen der GL.- Klasse, die kann ich zwar aufrufen aber die Variablen, die ich brauche sind irgentwie nicht drin. Hat sich das alles in der neuen Version geändert oder ist das ein Fehler bei mir von der Konfiguration her?



> /home/lennard/Arbeitsfläche/trunk/MC2DJNR-Editor/src/main/view.java:42: cannot find symbol
> symbol  : variable GL_MODELVIEW
> location: interface javax.media.opengl.GL
> gl.glMatrixMode(GL.GL_MODELVIEW);
> ...


----------



## Marco13 (5. Jun 2011)

Hmja, es hat sich gelegentlich mal ein bißchen was geändert... vielleicht hängt das jetzt auch damit zusammen, was Guest2 aka Fancy in einem anderen Thread meinte: Die jogl.all.jar könnte falsch gebaut sein. Schau mal ob die jogl.all.jar NUR eine weitere jogl.all.jar enthält. Falls ja, pack die innere Datei aus, und ersetze die äußere damit. 
Ansonsten ist es schwer zu sagen, was davon "Folgefehler" sind: Sowas wie
symbol : method addKeyListener(main.view)
location: interface javax.media.opengl.GLAutoDrawable
sollte nichts mit Versionsänderungen zu tun haben... ???:L


----------



## BattleMaster246 (5. Jun 2011)

In meiner jogl.all.jar (/usr/lib/jvm/java-6-openjdk/jre/lib/ext) sind nur die Ordner "com, javax...".


----------



## Marco13 (6. Jun 2011)

Dann sollte das eigentlich passen. Solche Sachen wie GL_MODELVIEW wurden glaub' ich aus der GL rausgezogen, und sollten jetzt zumindest in der GL2 liegen, das kannst du mal testen.


----------



## Kr0e (6. Jun 2011)

Vlt. ist LWJGL eine Alternative ?! Jogl ist etwas.... in die Jahre gekommen^^


----------



## Marco13 (6. Jun 2011)

Eher im Gegenteil... es gab (speziell beim Übergang zu "JOGL2") einige Änderungen, die erst sehr langsam durch Tutorials und Snippet-Seiten "durchsickern" (d.h. man findet überall noch alten Code - ist aber nur in erster Näherung JOGL-spezifisch, weil's bei OpenGL selbst genauso (bzw. fast noch schlimmer) ist). 

WAS allerdings "spezifisch" für JOGL ist, ist, dass es (zumindest bisher, soweit ich das sehe) nicht einen definierten Zeitpunkt gibt, wo man sich auf der Seite eine verbindliche JOGL-2.0.0.ZIP, jeweils für Win/Linux/Mac, mit einer definitiven und verbindlichen API runterladen kann/konnte... Jeder hangelt sich durch eine undurchschaubere Liste von >200 builds und baut sich händisch aus DLLs aus ZIPs und JARs sein ganz persönliches JOGL-Kartenhaus zusammen... Irgendwann gab's mal diesen "Starter Pack", aber auch nur für NetBeans, und der wird AFAIK auch nicht weitergepflegt. Schade eigentlich.


----------



## Spacerat (6. Jun 2011)

Marco13 hat gesagt.:


> WAS allerdings "spezifisch" für JOGL ist, ist, dass es (zumindest bisher, soweit ich das sehe) nicht einen definierten Zeitpunkt gibt, wo man sich auf der Seite eine verbindliche JOGL-2.0.0.ZIP, jeweils für Win/Linux/Mac, mit einer definitiven und verbindlichen API runterladen kann/konnte... Jeder hangelt sich durch eine undurchschaubere Liste von >200 builds und baut sich händisch aus DLLs aus ZIPs und JARs sein ganz persönliches JOGL-Kartenhaus zusammen... Irgendwann gab's mal diesen "Starter Pack", aber auch nur für NetBeans, und der wird AFAIK auch nicht weitergepflegt. Schade eigentlich.


Ist doch wie Kr0e schon sagte... Okay, dan ist LWJGL halt eine Neuernative :lol:
JOGL ist zu einem Kartenhaus verkommen, was eigentlich schade ist. Ist möglicherweise nicht nur meine persönliche Meinung, aber es gibt für mich keinen Grund, warum ich mir aus grob geschätzt 200 Zips, Jars und Sonstewas die zusammensuchen soll, die sowohl bei 32Bit als auch bei 64Bit passen, während es für LWJGL einen einzigen Download dafür gibt. Erschwerend kommt hinzu, dass mein Umschwenken auf LWJGL nicht an JOGL sondern an JOAL lag. Letzteres ist nämlich in 64Bit überhaupt nicht verfügbar und soweit ich das überblicke, findet dort auch seit längerem kein Fortschritt mehr statt. So ist das Leben: Die Tatsache, das LWJGL alles in 3D-Sound und -Grafik vereint und alles bietet ausser vernüntiges Lightweight, wird das Einstampfen von JOAL sein grafisches Pendant JOGL wohl gleich mit runter ziehen, denn wer benötigt schon 200 verschiedene APIs, die alle ein und dasselbe tun? Ich jedenfalls nicht


----------



## BattleMaster246 (6. Jun 2011)

Ich werde dann nachher erstmal die GL2 probieren, wenn ich wieder in Linux bin.
Leider kann ich jetzt auch nicht so einfach die GL welchseln, weil das Programm schon ein halbes Jahr alt ist und ich jetzt nun verbessern wollte.


----------



## Kr0e (6. Jun 2011)

Naja, wie komplex ist dein Programm denn ? Je nach Komplexität ist aber ein Wechsel auf LWJGL schnell gemacht... Musst du halt entscheiden, ob dir das wert ist^^


----------



## BattleMaster246 (6. Jun 2011)

/ - mc2djnr-editor - MC2DJNR Editor - Google Project Hosting

Lässt LWJGL denn schneller installieren und ist der aufbau gleich?

Ich switch gleich mal zu Linux rüber.


----------



## Kr0e (6. Jun 2011)

Naja LWJGL ist eine einzige Datei, die du dir runterladen kannst. Es kommen recht häufig neue Versionen raus.
Die Aufbau ist ähnlich. Es gibt jar Files und dazu natürlich native Bilbiotheken.

LWJGL ansich ist schon was anderes als JOGL. Man arbeitet nicht mit Swing sondern mit reinen nativen Fenstern, was die Performance erhöht.

Natürlich ist das was arbeit... Du hast ja ne ganze Menge Code, auch vorallem der Inputkram, der LWJGL ganz andere Klassen hat. Es ist nicht schwerer, aber du musst dann viel anpassen... Dennoch ist es meiner Meinung nach wert... 

Ansonsten vlt auch mal nen Blick auf Slick2D riskieren  Ist eine 2D OpenGL Spiellibrary basierend auf LWJGL. Deinem code nach zu urteilen, ist das ja quasi ein 2D-Programm...


----------



## BattleMaster246 (6. Jun 2011)

So, ich habe mir eben nochmal LWJGL angesehen und musste feststellen, dass ich dann alles ändern müsste, also Jframe und der ganze rest. Ich habe mich nochmal auf die suche gemacht und habe mal die alten Jogl-Versionen von Index of /deployment/archive/master ausprobiert. Dort waren welche vom Juni 2010. Diese funktionieren super ohne Probleme (in dieser Zeit entstand mein Programm).

Danke nochmal an euch für die Hilfe.


----------



## Marco13 (6. Jun 2011)

Aber nebenbei, falls du doch noch mal LWJGL in Erwägung ziehst: Ich hatte auch " ???:L " geschaut als ich das erste Progrmam gesehen hatte - dann bin ich aber über den AWTGLCanvas gesolpert, und da ist dann alles wieder so, wie man's gewohnt ist. (Die Instanziierung ist ein bißchen krampfig, aber wenn man ihn erstmal hat, verhält er sich wie ein normaler Canvas)


----------

