Login  Register

Re: Gluegen apk won't install on Android 6 (Marshmallow)

Posted by kjkrum on Mar 07, 2016; 2:59am
URL: https://forum.jogamp.org/Gluegen-apk-won-t-install-on-Android-6-Marshmallow-tp4036114p4036440.html

Hey, it's Kevin from SO.  I use IDEA almost exclusively.  I have a bunch of questions, but I thought it would be good to start with a little background about how I became interested in JOGL.

I'm a professional Android developer whose day job mainly involves boring point-of-sale stuff.  I decided to learn about OGL and read a few books and tutorials about how it's done with the android.opengl.* APIs.  I quickly realized that Google made a big mistake by not using interfaces for their GLES2+ APIs.  They included the Khronos GLES1 interfaces in the standard Android API, but starting with GLES2, everything is done with static methods.  I found JOGL when I went looking for a library that uses interfaces.

Questions:

- What are the JOGL equivalents of GLSurfaceView and GLSurfaceView.Renderer?  (GLSurfaceView is the Android-managed view that holds the GL surface; Renderer is the callback that is called when the GL context is created and when each frame is rendered, among other things.)

- Can a JOGL surface be declared in layout XML?

- Is it possible to use JOGL without extending a particular Activity?  (Early versions of some Google APIs used required extending activities, like MapActivity and PreferenceActivity, but this proved to be a very restrictive anti-pattern, and newer versions have moved away from it.)

- What does a minimal JOGL "Hello, world!" look like?  I mean something like an empty black screen rendered with OGL.

- Why are there multiple native jars for each architecture?  What's in them, and are all of them always required?

- Why do some tutorials suggest that JOGL apps require other APKs to be installed alongside them?  Can this be avoided?

- Why does gluegen parse C headers instead of the Registry XML from which the C headers are derived?  Was the XML not available when gluegen was originally created?  Would gluegen benefit in any way from being converted to use the XML?

- I noticed from reading the code that JOGL relies on global state.  Global state is especially evil on Android because of the way the framework manages activities and other components.  I also noticed some comments hinting at problems caused by this.  Could this be avoided without breaking compatibility with other platforms that JOGL supports?