commit 98c04ab819ce21db3bbd8f7324608fb852128246
Author: leszek <leszek@koltunski.pl>
Date:   Sat Feb 11 23:02:47 2017 +0000

    Fix the Effects3D regression.

diff --git a/src/main/java/org/distorted/examples/effects3d/Effects3DActivity.java b/src/main/java/org/distorted/examples/effects3d/Effects3DActivity.java
index acbfaf3..e9be52e 100644
--- a/src/main/java/org/distorted/examples/effects3d/Effects3DActivity.java
+++ b/src/main/java/org/distorted/examples/effects3d/Effects3DActivity.java
@@ -246,24 +246,14 @@ public class Effects3DActivity extends Activity
 
   public void setSupportsRegion(boolean supports)
     {
-    if( mSupportsRegion != supports )
-      {
-      mSupportsRegion = supports;
-      Effects3DSurfaceView view = (Effects3DSurfaceView) findViewById(R.id.effects3dSurfaceView);
-      view.getRenderer().attachRegion(supports);
-      }
+    mSupportsRegion = supports;
     }
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
   public void setSupportsCenter(boolean supports)
     {
-    if( mSupportsCenter != supports )
-      {
-      mSupportsCenter = supports;
-      Effects3DSurfaceView view = (Effects3DSurfaceView) findViewById(R.id.effects3dSurfaceView);
-      view.getRenderer().attachCenter(supports);
-      }
+    mSupportsCenter = supports;
     }
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
@@ -358,7 +348,6 @@ public class Effects3DActivity extends Activity
     mRegionR = r;
 
     Effects3DSurfaceView view = (Effects3DSurfaceView)findViewById(R.id.effects3dSurfaceView);
-
     view.getRenderer().setRegion(mRegionX, mRegionY, mRegionR);
     }
 
@@ -371,7 +360,6 @@ public class Effects3DActivity extends Activity
     mCenterZ = z;
 
     Effects3DSurfaceView view = (Effects3DSurfaceView)findViewById(R.id.effects3dSurfaceView);
-
     view.getRenderer().setCenter( mCenterX, mCenterY, mCenterZ );
     }
 
@@ -441,8 +429,6 @@ public class Effects3DActivity extends Activity
     mEffects= new DistortedEffects();
     mTexture= new DistortedTexture(mNumCols,mNumRows);
 
-    resetData();
-
     final View view = getLayoutInflater().inflate(R.layout.effects3dlayout, null);
 
     setContentView(view);
@@ -458,6 +444,8 @@ public class Effects3DActivity extends Activity
     adapterEffect.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
     effectSpinner.setAdapter(adapterEffect);
 
+    resetData();
+
     mEffectAdd = 0;
     }
 
@@ -535,11 +523,9 @@ public class Effects3DActivity extends Activity
 
     mSupportsRegion =false;
     mSupportsCenter =false;
-/*
-    Effects3DSurfaceView view = (Effects3DSurfaceView) findViewById(R.id.effects3dSurfaceView);
-    view.getRenderer().attachRegion(false);
-    view.getRenderer().attachCenter(false);
-*/
+
+    Effects3DSurfaceView view = (Effects3DSurfaceView)findViewById(R.id.effects3dSurfaceView);
+    view.getRenderer().showRegionAndCenter(false);
     }
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
@@ -567,6 +553,9 @@ public class Effects3DActivity extends Activity
       }
 
     eff.apply(mEffects);
+
+    Effects3DSurfaceView sv = (Effects3DSurfaceView)findViewById(R.id.effects3dSurfaceView);
+    sv.getRenderer().showRegionAndCenter(mEffectNames[mEffectAdd].getType()==EffectTypes.VERTEX);
     }
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
diff --git a/src/main/java/org/distorted/examples/effects3d/Effects3DEffect.java b/src/main/java/org/distorted/examples/effects3d/Effects3DEffect.java
index c63cb52..e25a7d0 100644
--- a/src/main/java/org/distorted/examples/effects3d/Effects3DEffect.java
+++ b/src/main/java/org/distorted/examples/effects3d/Effects3DEffect.java
@@ -637,6 +637,8 @@ class Effects3DEffect implements SeekBar.OnSeekBarChangeListener
     if( fromUser )
       {
       Effects3DActivity act = mAct.get();
+      Effects3DSurfaceView view = (Effects3DSurfaceView)act.findViewById(R.id.effects3dSurfaceView);
+      view.getRenderer().showRegionAndCenter(mName.getType()==EffectTypes.VERTEX);
 
       act.setSupportsCenter(mName.supportsCenter());
       act.setSupportsRegion(mName.supportsRegion());
diff --git a/src/main/java/org/distorted/examples/effects3d/Effects3DRenderer.java b/src/main/java/org/distorted/examples/effects3d/Effects3DRenderer.java
index 669e622..757c5e1 100644
--- a/src/main/java/org/distorted/examples/effects3d/Effects3DRenderer.java
+++ b/src/main/java/org/distorted/examples/effects3d/Effects3DRenderer.java
@@ -67,6 +67,7 @@ class Effects3DRenderer implements GLSurfaceView.Renderer
 
     Static4D mQuat1, mQuat2;
     int mScreenMin;
+    boolean mShowing=false;
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
@@ -118,25 +119,27 @@ class Effects3DRenderer implements GLSurfaceView.Renderer
       mScreen = new DistortedScreen();
       mScreen.attach(mBackgroundTexture, mBackgroundEffects, mQuad      );
       mScreen.attach(mObjectTexture    , mObjectEffects    , mObjectMesh);
-
-      mScreen.attach(mCenterNode);
-      mScreen.attach(mRegionNode);
       }
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
-    void attachRegion(boolean attach)
+    void showRegionAndCenter(boolean show)
       {
-      //if( attach ) mScreen.attach(mRegionNode);
-      //else         mScreen.detach(mRegionNode);
-      }
-
-///////////////////////////////////////////////////////////////////////////////////////////////////
+      if( mShowing!=show )
+        {
+        if( show )
+          {
+          mScreen.attach(mCenterNode);
+          mScreen.attach(mRegionNode);
+          }
+        else
+          {
+          mScreen.detach(mCenterNode);
+          mScreen.detach(mRegionNode);
+          }
 
-    void attachCenter(boolean attach)
-      {
-      //if( attach ) mScreen.attach(mCenterNode);
-      //else         mScreen.detach(mCenterNode);
+        mShowing = show;
+        }
       }
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
