commit a9d4bb9a7e6e54463d4423b19d05a1177d8e2a62
Author: Leszek Koltunski <leszek@koltunski.pl>
Date:   Fri Apr 23 14:18:33 2021 +0200

    - report the Graphics driver's Renderer and Version.
    - new Diamond, Skewb2 and Skewb3 meshes.

diff --git a/src/main/java/org/distorted/library/main/DistortedLibrary.java b/src/main/java/org/distorted/library/main/DistortedLibrary.java
index 630a9c3..33bcac4 100644
--- a/src/main/java/org/distorted/library/main/DistortedLibrary.java
+++ b/src/main/java/org/distorted/library/main/DistortedLibrary.java
@@ -116,12 +116,14 @@ public class DistortedLibrary
   private static int mGLSL;
   private static String mGLSL_VERSION;
   private static boolean mOITCompilationAttempted, mNeedsTransformFeedback;
-  private static boolean mBuggyUBOs;
 
   private static int mMaxTextureSize         = Integer.MAX_VALUE;
   private static int mMaxNumberOfVerUniforms = Integer.MAX_VALUE;
   private static int mMaxNumberOfFraUniforms = Integer.MAX_VALUE;
 
+  private static boolean mBuggyUBOs;
+  private static String mVendor, mVersion, mRenderer;
+
   //////////////////////////////////////////////////////////////////////////////////////////////
   /// MAIN PROGRAM ///
   private static DistortedProgram mMainProgram;
@@ -889,19 +891,19 @@ public class DistortedLibrary
 
   private static void detectBuggyDriversAndSetQueueSize(int queueSize)
     {
-    String vendor  = GLES30.glGetString(GLES30.GL_VENDOR);
-    String version = GLES30.glGetString(GLES30.GL_VERSION);
-    String renderer= GLES30.glGetString(GLES30.GL_RENDERER);
+    mVendor  = GLES30.glGetString(GLES30.GL_VENDOR);
+    mVersion = GLES30.glGetString(GLES30.GL_VERSION);
+    mRenderer= GLES30.glGetString(GLES30.GL_RENDERER);
 
     mFBOQueueSize = 1;
 
-    if( vendor.contains("ARM") )
+    if( mVendor.contains("ARM") )
       {
       try
         {
         String regex = ".*r(\\d+)p\\d.*";
         Pattern pattern = Pattern.compile(regex);
-        Matcher matcher = pattern.matcher(version);
+        Matcher matcher = pattern.matcher(mVersion);
 
         if( matcher.find() )
           {
@@ -926,17 +928,17 @@ public class DistortedLibrary
         android.util.Log.e("library", "exception trying to pattern match version: "+ex.toString());
         }
       }
-    else if( vendor.contains("Imagination") )
+    else if( mVendor.contains("Imagination") )
       {
-      if( renderer.contains("GE8") )
+      if( mRenderer.contains("GE8") )
         {
         Log.e("DISTORTED", "You are running this on a PowerVR GE8XXX.\nDue to a buggy compiler OIT rendering will not work");
         Log.e("DISTORTED", "GLSL Version "+GLES30.glGetString(GLES31.GL_SHADING_LANGUAGE_VERSION));
         }
       }
-    else if( vendor.contains("Qualcomm"))
+    else if( mVendor.contains("Qualcomm"))
       {
-      if( version.contains("V@331.0") )
+      if( mVersion.contains("V@331.0") )
         {
         Log.e("DISTORTED", "You are running this on an Adreno 3xx driver version 331.\nStrange shit might happen.");
         mBuggyUBOs = true;
@@ -1226,4 +1228,31 @@ public class DistortedLibrary
     {
     return EffectQueue.setMax(type.ordinal(),max);
     }
+
+///////////////////////////////////////////////////////////////////////////////////////////////////
+/**
+ * Return a String defining the vendor of the graphics driver.
+ */
+  public static String getDriverVendor()
+    {
+    return mVendor;
+    }
+
+///////////////////////////////////////////////////////////////////////////////////////////////////
+/**
+ * Return a String defining the version of the graphics driver.
+ */
+  public static String getDriverVersion()
+    {
+    return mVersion;
+    }
+
+///////////////////////////////////////////////////////////////////////////////////////////////////
+/**
+ * Return a String defining the renderer of the graphics driver.
+ */
+  public static String getDriverRenderer()
+    {
+    return mRenderer;
+    }
   }
\ No newline at end of file
