commit c1df2105546acae7109a4013a3902ee7b47b390a
Author: Leszek Koltunski <leszek@koltunski.pl>
Date:   Tue Jun 16 20:37:49 2020 +0100

    Only compile the Full, Normal & OIT programs when they are actually needed.

diff --git a/src/main/java/org/distorted/main/RubikRenderer.java b/src/main/java/org/distorted/main/RubikRenderer.java
index 8461d6e2..8c35d975 100644
--- a/src/main/java/org/distorted/main/RubikRenderer.java
+++ b/src/main/java/org/distorted/main/RubikRenderer.java
@@ -36,7 +36,7 @@ import com.google.firebase.crashlytics.FirebaseCrashlytics;
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
-public class RubikRenderer implements GLSurfaceView.Renderer
+public class RubikRenderer implements GLSurfaceView.Renderer, DistortedLibrary.ExceptionListener
 {
    private RubikSurfaceView mView;
    private DistortedScreen mScreen;
@@ -83,49 +83,49 @@ public class RubikRenderer implements GLSurfaceView.Renderer
       VertexEffectQuaternion.enable();
       BaseEffect.Type.enableEffects();
 
-      try
-        {
-        DistortedLibrary.onCreate(mView.getContext(),1);
-        }
-      catch(Exception ex)
-        {
-        String message = ex.getMessage();
-        String shading = GLES30.glGetString(GLES30.GL_SHADING_LANGUAGE_VERSION);
-        String version = GLES30.glGetString(GLES30.GL_VERSION);
-        String vendor  = GLES30.glGetString(GLES30.GL_VENDOR);
-        String renderer= GLES30.glGetString(GLES30.GL_RENDERER);
-
-        if( message==null ) message = "exception NULL";
-
-        if( BuildConfig.DEBUG )
-          {
-          android.util.Log.e("DISTORTED", message );
-          android.util.Log.e("DISTORTED", "GLSL Version "+shading);
-          android.util.Log.e("DISTORTED", "GL Version "  +version);
-          android.util.Log.e("DISTORTED", "GL Vendor "   +vendor);
-          android.util.Log.e("DISTORTED", "GL Renderer " +renderer);
-          }
-        else
-          {
-          FirebaseCrashlytics crashlytics = FirebaseCrashlytics.getInstance();
-          crashlytics.setCustomKey("DistortedError", message );
-          crashlytics.setCustomKey("GLSL Version"  , shading );
-          crashlytics.setCustomKey("GLversion"     , version );
-          crashlytics.setCustomKey("GL Vendor "    , vendor  );
-          crashlytics.setCustomKey("GLSLrenderer"  , renderer);
-          crashlytics.recordException(ex);
-          }
-
-        int glsl = DistortedLibrary.getGLSL();
-
-        if( glsl< 300 )
-          {
-          RubikActivity act = (RubikActivity)mView.getContext();
-          act.OpenGLError(message);
-          }
-        }
+      DistortedLibrary.onCreate(mView.getContext(),this,1);
       }
 
+///////////////////////////////////////////////////////////////////////////////////////////////////
+
+   public void distortedException(Exception ex)
+     {
+     String message = ex.getMessage();
+     String shading = GLES30.glGetString(GLES30.GL_SHADING_LANGUAGE_VERSION);
+     String version = GLES30.glGetString(GLES30.GL_VERSION);
+     String vendor  = GLES30.glGetString(GLES30.GL_VENDOR);
+     String renderer= GLES30.glGetString(GLES30.GL_RENDERER);
+
+     if( message==null ) message = "exception NULL";
+
+     if( BuildConfig.DEBUG )
+       {
+       android.util.Log.e("DISTORTED", message );
+       android.util.Log.e("DISTORTED", "GLSL Version "+shading);
+       android.util.Log.e("DISTORTED", "GL Version "  +version);
+       android.util.Log.e("DISTORTED", "GL Vendor "   +vendor);
+       android.util.Log.e("DISTORTED", "GL Renderer " +renderer);
+       }
+     else
+       {
+       FirebaseCrashlytics crashlytics = FirebaseCrashlytics.getInstance();
+       crashlytics.setCustomKey("DistortedError", message );
+       crashlytics.setCustomKey("GLSL Version"  , shading );
+       crashlytics.setCustomKey("GLversion"     , version );
+       crashlytics.setCustomKey("GL Vendor "    , vendor  );
+       crashlytics.setCustomKey("GLSLrenderer"  , renderer);
+       crashlytics.recordException(ex);
+       }
+
+     int glsl = DistortedLibrary.getGLSL();
+
+     if( glsl< 300 )
+       {
+       RubikActivity act = (RubikActivity)mView.getContext();
+       act.OpenGLError(message);
+       }
+     }
+
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
    DistortedScreen getScreen()
