Java OpenGL

Uit Wikipedia, de vrije encyclopedie
Ga naar: navigatie, zoeken
Java OpenGL
JOGL Refrection Demo Screenshot.png
Ontwikkelaar Sun Microsystems
Recentste versie 1.1.1 
(22 mei 2008)
Laatste bètaversie 2.0 
(23 september 2010)
Besturingssysteem Multiplatform
Categorie Wrapperbibliotheek
Licentie BSD-licentie
Website (en) Projectpagina
Portaal  Portaalicoon   Informatica

Java OpenGL (JOGL) is een wrapper-bibliotheek voor het gebruik van OpenGL in de programmeertaal Java. Het wordt ontwikkeld door de Game Technology Group bij Sun Microsystems.

Kenmerken[bewerken]

JOGL biedt toegang tot de meeste functionaliteit die C programmeurs kunnen gebruiken, uitgezonderd de venstergerelateerde aanroepen aan het systeem in OpenGL Utility Toolkit (GLUT) aangezien Java zelf systemen bevat voor het beheren van vensters, namelijk AWT en Swing. Ook ontbreken enkele uitbreidingen. JOGL is de referentie-implementatie van Java Specifiation Request 231: Java Binding for the OpenGL API.

De basis OpenGL C API is toegankelijk in JOGL via Java Native Interface (JNI) aanroepen. Het onderliggende systeem moet hierdoor OpenGL ondersteunen om JOGL te kunnen gebruiken.

Ontwerp[bewerken]

JOGL verschilt van sommige andere Java OpenGL bibliotheken aangezien het de OpenGL API alleen toegankelijk maakt via een aantal klassen in plaats van het overbrengen van de OpenGL functionaliteit naar het objectgeöriënteerde programmeerparadigma. Het meeste van de JOGL code is automatisch gegenereerd met behulp van de OpenGL C headerbestanden met een conversieprogramma genaamd GlueGen.

Deze ontwerpkeuze heeft voor- en nadelen. De procedurele en eindige toestandsautomaat kenmerken van OpenGL komen niet overeen met de gebruikelijke manier van programmeren in Java, wat veel programmeurs tegenstaat. Aan de andere kant maakt de directe overeenkomst tussen de functionaliteit van de OpenGL C API en de methoden in JOGL het gemakkelijk om bestaande C programma's over te zetten. Het vereenvoudigt ook voorbeeldcode om te leren werken met JOGL. De dunne laag van abstractie die door JOGL wordt geboden maakt het uitvoeren van programma's vrij efficiënt maar het is lastiger om te programmeren in vergelijking met bibliotheken met een hoger niveau van abstractie, zoals Java3D. Aangezien de meeste code automatisch gegenereerd is kunnen veranderingen in OpenGL snel toegevoegd worden aan JOGL.

Zie ook[bewerken]

Externe links[bewerken]