Android unterstützt OpenGL ES 1.0, das sich mit OpenGL 1.3 überschneidet, also sollte dies möglich sein, aber es ist nicht so einfach, die JAR-Dateien zur Laufzeit zu ersetzen.
Es ist eine gute Idee zu versuchen, so viel wie möglich Ihrer Anwendung auf beiden Plattformen zu verwenden. Wie auch immer, es ist generell eine gute Praxis, den Rest von Code von externen Abhängigkeiten wie OpenGL zu isolieren, auch wenn Sie OpenGL ES nicht unbedingt benötigen. Sie wissen nie, auf welche API/Plattform Sie Ihre Anwendung in Zukunft möglicherweise portieren möchten.
Es sind 2 Optionen verfügbar.
Die erste besteht darin, die OpenGL-Implementierung hinter einer Schnittstelle zu verbergen, die der Rest Ihrer Anwendung verwendet, und dann separate Implementierungen von Jogl und Androide bereitzustellen. Abhängig von der Plattform, auf der Sie arbeiten, können Sie dann die korrekte Implementierung zur Laufzeit mithilfe des Factory-Patterns instanziieren.
Da OpenGL ES und OpenGL sehr ähnlich sind, sollte der Aufwand nicht zu hoch sein, wenn Sie sich an die üblichen Funktionen halten.
Die andere Möglichkeit ist es, Jogl2 zu verwenden, das Profile unterstützt. Diese scheinen genau das zu bieten, was Sie brauchen, aber Jogl2 ist noch in der Betaversion.
Die untere Seite spricht ein wenig über Profile: http://kenai.com/projects/jogl/pages/FAQ
Profile erlauben Java-Anwendungen in einer Weise, die Kompatibilität zur gleichen Zeit mit mehreren OpenGL-Versionen können geschrieben werden. Da OpenGL ES (GL für eingebettete Systeme) überlappende Funktionalität mit OpenGL selbst hat, eröffnete es die Möglichkeit, sogar Profile hinzuzufügen, die Desktop- und eingebettete Implementierungen überbrücken.
Sie können diese http://michael-bien.com/mbien/entry/jogl_2_opengl_profiles_explained für weitere Informationen über Profile lesen.
Nette Frage - Portabilität auf mobilen Plattformen ist immer noch keine Realität. – whatnick
Versuchen Sie, Qt zu verwenden. Es ist plattformübergreifend und funktioniert unter Windows, Mac OS X, Linux, iOS, Android, BlackBerry, Windows RT und (bald) Windows Phone.Es bietet die minimale Anzahl von OpenGL-Funktionen, die auf allen Plattformen kompatibel sind, aber Sie können auch OpenGL-Funktionen verwenden, die für jede Plattform spezifisch sind (z. B. vollständige OpenGL-Funktionalität auf Desktops). – trusktr