commit 676c14da1f8d98885614ae9100f3ec67eaa73543
Author: Leszek Koltunski <leszek@koltunski.pl>
Date:   Sun Jan 6 23:15:12 2019 +0000

    Relax requirements on when we can call DistortedEffects.setMax().
    
    Before this change one had to call it before creation of shaders and before any of the DistortedEffects classes got created.
    This commit removes the second requirement so now with setMax it's just like with enabling effects: it's best done in onSurfaceCreated.

diff --git a/src/main/java/org/distorted/examples/aroundtheworld/AroundTheWorldRenderer.java b/src/main/java/org/distorted/examples/aroundtheworld/AroundTheWorldRenderer.java
index 0147780..64bd8d0 100644
--- a/src/main/java/org/distorted/examples/aroundtheworld/AroundTheWorldRenderer.java
+++ b/src/main/java/org/distorted/examples/aroundtheworld/AroundTheWorldRenderer.java
@@ -63,9 +63,6 @@ class AroundTheWorldRenderer implements GLSurfaceView.Renderer
 
    AroundTheWorldRenderer(GLSurfaceView view)
       {
-      DistortedEffects.setMax(EffectType.VERTEX,12);
-      DistortedEffects.setMax(EffectType.FRAGMENT,9);
-
       mMove = new Static3D(0,0,0);
       mScale= new Static3D(1,1,1);
 
@@ -147,6 +144,9 @@ class AroundTheWorldRenderer implements GLSurfaceView.Renderer
       mScreen.detachAll();
       mScreen.attach(mTexture, mEffects, mMesh);
 
+      DistortedEffects.setMax(EffectType.VERTEX  ,12);
+      DistortedEffects.setMax(EffectType.FRAGMENT, 9);
+
       VertexEffectDistort.enable();
       VertexEffectSink.enable();
       VertexEffectPinch.enable();
diff --git a/src/main/java/org/distorted/examples/check/CheckRenderer.java b/src/main/java/org/distorted/examples/check/CheckRenderer.java
index 488be22..268408f 100644
--- a/src/main/java/org/distorted/examples/check/CheckRenderer.java
+++ b/src/main/java/org/distorted/examples/check/CheckRenderer.java
@@ -79,6 +79,7 @@ class CheckRenderer implements GLSurfaceView.Renderer
 
       DistortedEffects.setMax(EffectType.VERTEX  ,act.getMaxV());
       DistortedEffects.setMax(EffectType.FRAGMENT,act.getMaxF());
+
       VertexEffectSwirl.enable();
       VertexEffectDeform.enable();
       FragmentEffectChroma.enable();
@@ -217,9 +218,9 @@ class CheckRenderer implements GLSurfaceView.Renderer
         compilationResult += "\nGL vendor: "+(ver==null ? "null" : ver);
         ver = GLES31.glGetString(GLES31.GL_RENDERER);
         compilationResult += "\nGL renderer: "+(ver==null ? "null" : ver);
-      
+
         CheckActivity act = (CheckActivity)mView.getContext();
-      
+
         act.runOnUiThread(new Runnable() 
           {
           public void run() 
diff --git a/src/main/java/org/distorted/examples/earth/EarthRenderer.java b/src/main/java/org/distorted/examples/earth/EarthRenderer.java
index 0da7c18..63b3d2c 100644
--- a/src/main/java/org/distorted/examples/earth/EarthRenderer.java
+++ b/src/main/java/org/distorted/examples/earth/EarthRenderer.java
@@ -103,9 +103,6 @@ class EarthRenderer implements GLSurfaceView.Renderer
 
       mLevel = SCALE;
 
-      DistortedEffects.setMax(EffectType.VERTEX  , MAX_EFF);
-      DistortedEffects.setMax(EffectType.FRAGMENT, MAX_EFF);
-
       mStrength   = new Static1D(0.5f);
       mColor      = new Static3D(255,0,0);
       mRegionF    = new Static3D(RADIUS_F,RADIUS_F,RADIUS_F);
@@ -278,6 +275,9 @@ class EarthRenderer implements GLSurfaceView.Renderer
       Effect.enableEffects(EffectType.FRAGMENT);
       Effect.enableEffects(EffectType.VERTEX);
 
+      DistortedEffects.setMax(EffectType.VERTEX  , MAX_EFF);
+      DistortedEffects.setMax(EffectType.FRAGMENT, MAX_EFF);
+
       try
         {
         Distorted.onCreate(mView.getContext());
diff --git a/src/main/java/org/distorted/examples/effects3d/Effects3DActivity2.java b/src/main/java/org/distorted/examples/effects3d/Effects3DActivity2.java
index 1c28a10..dd99699 100644
--- a/src/main/java/org/distorted/examples/effects3d/Effects3DActivity2.java
+++ b/src/main/java/org/distorted/examples/effects3d/Effects3DActivity2.java
@@ -100,9 +100,6 @@ public class Effects3DActivity2 extends AppCompatActivity
     mShowNormal = false;
     mUseOIT     = false;
 
-    DistortedEffects.setMax(EffectType.VERTEX  ,10);    // those have to be called before
-    DistortedEffects.setMax(EffectType.FRAGMENT,10);    // any DistortedEffect get created!
-
     switch(mObjectType)
       {
       case 0: mMesh = new MeshCubes(mNumCols, mString, mNumSlic);
diff --git a/src/main/java/org/distorted/examples/effects3d/Effects3DRenderer.java b/src/main/java/org/distorted/examples/effects3d/Effects3DRenderer.java
index a01d40a..c789350 100644
--- a/src/main/java/org/distorted/examples/effects3d/Effects3DRenderer.java
+++ b/src/main/java/org/distorted/examples/effects3d/Effects3DRenderer.java
@@ -306,6 +306,9 @@ class Effects3DRenderer implements GLSurfaceView.Renderer
       mCenterTexture.setTexture(bitmapC);
       mRegionTexture.setTexture(bitmapR);
 
+      DistortedEffects.setMax(EffectType.VERTEX  ,10);
+      DistortedEffects.setMax(EffectType.FRAGMENT,10);
+
       Effect.enableEffects(EffectType.VERTEX);
       Effect.enableEffects(EffectType.FRAGMENT);
       Effect.enableEffects(EffectType.POSTPROCESS);
diff --git a/src/main/java/org/distorted/examples/listener/ListenerRenderer.java b/src/main/java/org/distorted/examples/listener/ListenerRenderer.java
index 58736dd..ec22c3a 100644
--- a/src/main/java/org/distorted/examples/listener/ListenerRenderer.java
+++ b/src/main/java/org/distorted/examples/listener/ListenerRenderer.java
@@ -66,10 +66,6 @@ class ListenerRenderer implements GLSurfaceView.Renderer,EffectListener
 
    ListenerRenderer(GLSurfaceView v)
       {
-      // one more than we have bubbles at any given time because it can sometimes happen that
-      // the old bubble is not yet removed when we add a new one
-      DistortedEffects.setMax(EffectType.VERTEX,NUM_BUBBLES+1);
-
       mView = v;
       mEffects = new DistortedEffects();
       mEffects.registerForMessages(this);
@@ -178,6 +174,9 @@ class ListenerRenderer implements GLSurfaceView.Renderer,EffectListener
 
      for(int i=0; i<NUM_BUBBLES; i++) addNewBubble();
 
+     // one more than we have bubbles at any given time because it can sometimes
+     // happen that the old bubble is not yet removed when we add a new one
+     DistortedEffects.setMax(EffectType.VERTEX,NUM_BUBBLES+1);
      VertexEffectDistort.enable();
 
      try
