From 4e91f5e085585481b542c476a1ba599f2e914bf1 Mon Sep 17 00:00:00 2001
From: Sven Gothel <sgothel@jausoft.com>
Date: Tue, 17 Jun 2014 23:42:58 +0200
Subject: Fix regression due to GlueGen commit
 c3054a01990e55ab35756ea23ab7d7c05f24dd37, completes JOGL commit
 68ca3ae8fcce28c62034299bc6e6f7eaab50bd1f

Add handling of 'initializeImpl()' of generated GLU* classes:
  - GLU      : no 'initializeImpl()' <- no libs
  - GLUgl2es1: no 'initializeImpl()' <- no libs
  - GLUgl:     call 'initializeImpl()' in manual static init impl.

Further more, we shall not initialize the GLU* classes in GLU
static init method, querying GLU* class availability.

Tested via OlympicES1.
---
 make/config/jogl/glu-CustomJavaCode-base.java   | 9 +++++++--
 make/config/jogl/glu-CustomJavaCode-gl2.java    | 4 ++++
 make/config/jogl/glu-CustomJavaCode-gl2es1.java | 4 ++++
 make/config/jogl/glu-base.cfg                   | 1 +
 make/config/jogl/glu-gl2.cfg                    | 1 +
 make/config/jogl/glu-gl2es1.cfg                 | 1 +
 6 files changed, 18 insertions(+), 2 deletions(-)

(limited to 'make/config/jogl')

diff --git a/make/config/jogl/glu-CustomJavaCode-base.java b/make/config/jogl/glu-CustomJavaCode-base.java
index 21d6277e9..48fe31329 100644
--- a/make/config/jogl/glu-CustomJavaCode-base.java
+++ b/make/config/jogl/glu-CustomJavaCode-base.java
@@ -83,11 +83,16 @@ static {
     Class _gl2Class=null;
     Class _gl2es1Class=null;
     try {
-        _gl2Class = Class.forName("javax.media.opengl.glu.gl2.GLUgl2");
-        _gl2es1Class = Class.forName("javax.media.opengl.glu.gl2es1.GLUgl2es1");
+        final ClassLoader cl = GLU.class.getClassLoader();
+        _gl2Class = Class.forName("javax.media.opengl.glu.gl2.GLUgl2", false, cl);
+        _gl2es1Class = Class.forName("javax.media.opengl.glu.gl2es1.GLUgl2es1", false, cl);
     } catch (Throwable t) {}
     gl2Class = _gl2Class;
     gl2es1Class = _gl2es1Class;
+    /** No native code, not required nor possible
+    if( !initializeImpl() ) {
+        throw new RuntimeException("Initialization failure");
+    } */
 }
 
 /**
diff --git a/make/config/jogl/glu-CustomJavaCode-gl2.java b/make/config/jogl/glu-CustomJavaCode-gl2.java
index 4dcb5691e..c8ac9403b 100644
--- a/make/config/jogl/glu-CustomJavaCode-gl2.java
+++ b/make/config/jogl/glu-CustomJavaCode-gl2.java
@@ -7,6 +7,10 @@ static {
         if (val != null && !val.toLowerCase().equals("false")) {
           useJavaMipmapCode = false;
         }
+        // Native code exists
+        if( !initializeImpl() ) {
+            throw new RuntimeException("Initialization failure");
+        }
         return null;
       }
     });
diff --git a/make/config/jogl/glu-CustomJavaCode-gl2es1.java b/make/config/jogl/glu-CustomJavaCode-gl2es1.java
index 203d1eeae..de9c65b8d 100644
--- a/make/config/jogl/glu-CustomJavaCode-gl2es1.java
+++ b/make/config/jogl/glu-CustomJavaCode-gl2es1.java
@@ -8,6 +8,10 @@ static {
         if (val != null && !val.toLowerCase().equals("false")) {
           useJavaMipmapCode = false;
         }
+        // No native code, not required nor possible
+        // if( !initializeImpl() ) {
+        //     throw new RuntimeException("Initialization failure");
+        // }
         return null;
       }
     });
diff --git a/make/config/jogl/glu-base.cfg b/make/config/jogl/glu-base.cfg
index f4021d6d8..93aff1fa9 100644
--- a/make/config/jogl/glu-base.cfg
+++ b/make/config/jogl/glu-base.cfg
@@ -18,6 +18,7 @@ Ignore gluScaleImage
 
 # Custom Java code for GLU class
 IncludeAs CustomJavaCode GLU glu-CustomJavaCode-base.java
+ManualStaticInit GLU
 
 # Imports for the Error and Registry classes
 Import jogamp.opengl.glu.error.Error
diff --git a/make/config/jogl/glu-gl2.cfg b/make/config/jogl/glu-gl2.cfg
index a634e3113..9a15645a6 100644
--- a/make/config/jogl/glu-gl2.cfg
+++ b/make/config/jogl/glu-gl2.cfg
@@ -34,6 +34,7 @@ CustomCCode #include <GL/glu.h>
 
 # Custom Java code for GLU class
 IncludeAs CustomJavaCode GLUgl2 glu-CustomJavaCode-gl2.java
+ManualStaticInit GLUgl2
 
 # GLU needs access to the GLUtesselatorImpl class for GLUtesselator,
 # to the Mipmap class for scaling and mipmap generation,
diff --git a/make/config/jogl/glu-gl2es1.cfg b/make/config/jogl/glu-gl2es1.cfg
index fa7011360..35dd6a2e0 100644
--- a/make/config/jogl/glu-gl2es1.cfg
+++ b/make/config/jogl/glu-gl2es1.cfg
@@ -18,6 +18,7 @@ Ignore gluScaleImage
 
 # Custom Java code for GLU class
 IncludeAs CustomJavaCode GLUgl2es1 glu-CustomJavaCode-gl2es1.java
+ManualStaticInit GLUgl2es1
 
 Import javax.media.opengl.GLES1
 Import jogamp.opengl.glu.mipmap.Mipmap
-- 
cgit v1.2.3