commit ef02f5e0efcc9b07ad8dd7eba8b5785e469d9a9f
Author: Leszek Koltunski <leszek@koltunski.pl>
Date:   Tue Feb 23 22:54:02 2021 +0100

    Bugfixes as a result of the Samsung Galaxy J4+ investigation:
    
    1) By default, switch off transform feedback in the main program.
       Create a new API 'needTransformFeedback()' to call if someone still needs TF in the main program.
    2) lower the default max number of vertex effects to 30.
    3) lower the default max number of Components of a Mesh to 100.

diff --git a/src/main/java/org/distorted/examples/generic/GenericRenderer.java b/src/main/java/org/distorted/examples/generic/GenericRenderer.java
index 03db63f..8500ecd 100644
--- a/src/main/java/org/distorted/examples/generic/GenericRenderer.java
+++ b/src/main/java/org/distorted/examples/generic/GenericRenderer.java
@@ -54,19 +54,19 @@ class GenericRenderer implements GLSurfaceView.Renderer, DistortedLibrary.Except
     private static final float FOV = 30.0f;
     private static final float NEAR = 0.1f;
 
-    private GLSurfaceView mView;
-    private DistortedTexture mObjectTexture, mBackgroundTexture, mCenterTexture, mRegionTexture;
-    private DistortedEffects mObjectEffects;
-    private DistortedScreen mScreen;
-    private DistortedNode mCenterNode, mRegionNode;
-    private float mObjWidth, mObjHeight, mObjDepth;
-    private Static3D mCenterPoint, mRegionPoint, mScaleRegion;
-    private Static3D mMoveObject, mScaleObject, mScaleCenter, mMoveBackground, mScaleBackground;
+    private final GLSurfaceView mView;
+    private final DistortedTexture mObjectTexture, mBackgroundTexture, mCenterTexture, mRegionTexture;
+    private final DistortedEffects mObjectEffects;
+    private final DistortedScreen mScreen;
+    private final DistortedNode mCenterNode, mRegionNode;
+    private final Static3D mCenterPoint, mRegionPoint, mScaleRegion;
+    private final Static3D mMoveObject, mScaleObject, mScaleCenter, mMoveBackground, mScaleBackground;
+    private final float mObjWidth, mObjHeight, mObjDepth, mFactor;
+
     private boolean mShowingCenter=false;
     private boolean mShowingRegion=false;
     private float mFactorObj;
     private int mWidth;
-    private float mFactor;
 
     Static4D mQuat1, mQuat2;
     int mScreenMin;
@@ -319,6 +319,7 @@ class GenericRenderer implements GLSurfaceView.Renderer, DistortedLibrary.Except
       Effect.enableEffects(EffectType.FRAGMENT);
       Effect.enableEffects(EffectType.POSTPROCESS);
 
+      DistortedLibrary.needTransformFeedback();
       DistortedLibrary.onSurfaceCreated(mView.getContext(), this);
       }
 
diff --git a/src/main/java/org/distorted/examples/meshfile/MeshFileRenderer.java b/src/main/java/org/distorted/examples/meshfile/MeshFileRenderer.java
index 617332a..1b33ec4 100644
--- a/src/main/java/org/distorted/examples/meshfile/MeshFileRenderer.java
+++ b/src/main/java/org/distorted/examples/meshfile/MeshFileRenderer.java
@@ -134,6 +134,7 @@ class MeshFileRenderer implements GLSurfaceView.Renderer, DistortedLibrary.Excep
       VertexEffectRotate.enable();
       VertexEffectDeform.enable();
 
+      DistortedLibrary.needTransformFeedback();
       DistortedLibrary.onSurfaceCreated(mView.getContext(), this);
       }
 
diff --git a/src/main/java/org/distorted/examples/predeform/PredeformRenderer.java b/src/main/java/org/distorted/examples/predeform/PredeformRenderer.java
index 7cfc9a6..5ee1469 100644
--- a/src/main/java/org/distorted/examples/predeform/PredeformRenderer.java
+++ b/src/main/java/org/distorted/examples/predeform/PredeformRenderer.java
@@ -48,12 +48,12 @@ class PredeformRenderer implements GLSurfaceView.Renderer, DistortedLibrary.Exce
     private static final float FOV = 30.0f;
     private static final float NEAR = 0.1f;
 
-    private GLSurfaceView mView;
-    private DistortedTexture mTexture;
-    private DistortedEffects mEffects1, mEffects2;
-    private MeshBase mMesh1, mMesh2;
-    private DistortedScreen mScreen;
-    private Static3D mScale, mMove1, mMove2;
+    private final GLSurfaceView mView;
+    private final DistortedTexture mTexture;
+    private final DistortedEffects mEffects1, mEffects2;
+    private final MeshBase mMesh1, mMesh2;
+    private final DistortedScreen mScreen;
+    private final Static3D mScale, mMove1, mMove2;
 
     Static4D mQuat1, mQuat2;
     int mScreenMin;
@@ -180,6 +180,7 @@ class PredeformRenderer implements GLSurfaceView.Renderer, DistortedLibrary.Exce
 
       Effect.enableEffects(EffectType.VERTEX);
 
+      DistortedLibrary.needTransformFeedback();
       DistortedLibrary.onSurfaceCreated(act, this);
       }
 
