commit 7bf107f7790bb61620c5abb1dc18e20091823843
Author: Leszek Koltunski <leszek@distorted.org>
Date:   Fri Jun 17 00:49:00 2016 +0100

    Some more progress with porting apps to new VERTEX API.

diff --git a/src/main/java/org/distorted/examples/check/CheckRenderer.java b/src/main/java/org/distorted/examples/check/CheckRenderer.java
index 97d6630..f498aed 100644
--- a/src/main/java/org/distorted/examples/check/CheckRenderer.java
+++ b/src/main/java/org/distorted/examples/check/CheckRenderer.java
@@ -30,6 +30,7 @@ import org.distorted.examples.R;
 import org.distorted.library.Distorted;
 import org.distorted.library.DistortedBitmap;
 import org.distorted.library.EffectTypes;
+import org.distorted.library.type.Dynamic3D;
 import org.distorted.library.type.Static1D;
 import org.distorted.library.type.Static2D;
 import org.distorted.library.type.Static3D;
@@ -132,18 +133,22 @@ class CheckRenderer implements GLSurfaceView.Renderer
       //
       // Even if adding some of the Effects fails, the App will still start - you just won't see
       // the effects that failed to add.
-      Static2D pDown   = new Static2D(bmpWidth/2,   0);
-      Static3D vDown   = new Static3D( 0,-bmpHeight,0);
-      Static4D mRegion = new Static4D( 0, 0, 40 ,40 );
-
-      Dynamic2D mPoint = new Dynamic2D();
-      mPoint.setCount(0.0f);
-      mPoint.setDuration(2000);
-      mPoint.add(new Static2D(        0, bmpHeight/2));
-      mPoint.add(new Static2D( bmpWidth, bmpHeight/2));
-
-      mSuccess.swirl( 30, mRegion, mPoint );
-      mSuccess.deform(vDown, pDown, 2000, 0.0f);
+
+      Dynamic2D dSwirl = new Dynamic2D();
+      dSwirl.setCount(0.0f);
+      dSwirl.setDuration(2000);
+      dSwirl.add(new Static2D(        0, bmpHeight/2));
+      dSwirl.add(new Static2D( bmpWidth, bmpHeight/2));
+
+      mSuccess.swirl( new Static1D(30), dSwirl, new Static4D( 0,0,40,40) );
+
+      Dynamic3D dDeform = new Dynamic3D();
+      dDeform.setCount(0.0f);
+      dDeform.setDuration(2000);
+      dDeform.add(new Static3D( 0,         0,0));
+      dDeform.add(new Static3D( 0,-bmpHeight,0));
+
+      mSuccess.deform(dDeform, new Static2D(bmpWidth/2,0) );
 
       // Now try adding 1 Fragment Effect. Likewise, will fail if maxFragmentEffects is <1.
       Static3D color = new Static3D(1,0,0);
diff --git a/src/main/java/org/distorted/examples/deform/DeformRenderer.java b/src/main/java/org/distorted/examples/deform/DeformRenderer.java
index 85a15f3..857690e 100644
--- a/src/main/java/org/distorted/examples/deform/DeformRenderer.java
+++ b/src/main/java/org/distorted/examples/deform/DeformRenderer.java
@@ -248,9 +248,9 @@ class DeformRenderer implements GLSurfaceView.Renderer
       
       switch(mMode)
         {
-        case MODE_DISTORT: stretch.distort(v[0], dr, touchPoint, 0, 0.5f);
+        case MODE_DISTORT: stretch.distort( mMovingDynamic, touchPoint, dr);
                            break;
-        case MODE_DEFORM : stretch.deform( v[0], touchPoint);
+        case MODE_DEFORM : stretch.deform( mMovingDynamic, touchPoint);
                            break;
         case MODE_SHEAR  : shearID = stretch.shear(touchPoint, mMovingDynamic);
                            break;
@@ -291,7 +291,7 @@ class DeformRenderer implements GLSurfaceView.Renderer
       
       switch(mMode)
         {
-        case MODE_DISTORT: stretch.distort( mReleasedDynamic, dr, touchPoint);
+        case MODE_DISTORT: stretch.distort( mReleasedDynamic, touchPoint, dr);
                            break;
         case MODE_DEFORM : stretch.deform( mReleasedDynamic, touchPoint);
                            break;
diff --git a/src/main/java/org/distorted/examples/differenteffects/DifferentEffectsRenderer.java b/src/main/java/org/distorted/examples/differenteffects/DifferentEffectsRenderer.java
index d6bbd3c..9b55eee 100644
--- a/src/main/java/org/distorted/examples/differenteffects/DifferentEffectsRenderer.java
+++ b/src/main/java/org/distorted/examples/differenteffects/DifferentEffectsRenderer.java
@@ -161,9 +161,15 @@ class DifferentEffectsRenderer implements GLSurfaceView.Renderer
       
       // setting the bitmap once is enough; others are cloned!
       bmp[0].setBitmap(bitmap);
-         
-      bmp[0].sink(10.0f, RegionEye, pLeft , 2000, 0.0f);
-      bmp[0].sink(10.0f, RegionEye, pRight, 2000, 0.0f);
+
+      Dynamic1D sink = new Dynamic1D();
+      sink.setDuration(2000);
+      sink.setCount(0);
+      sink.add(new Static1D( 1));
+      sink.add(new Static1D(10));
+
+      bmp[0].sink(sink, pLeft, RegionEye);
+      bmp[0].sink(sink, pRight,RegionEye);
       bmp[1].distort(mDI, pNose1);
 
       Dynamic1D macroblockDyn = new Dynamic1D();
diff --git a/src/main/java/org/distorted/examples/fbo/FBORenderer.java b/src/main/java/org/distorted/examples/fbo/FBORenderer.java
index 05b52d0..66ce464 100644
--- a/src/main/java/org/distorted/examples/fbo/FBORenderer.java
+++ b/src/main/java/org/distorted/examples/fbo/FBORenderer.java
@@ -134,7 +134,14 @@ class FBORenderer implements GLSurfaceView.Renderer
 
       mText.move( new Static3D(lisaWidth/6,lisaHeight/3,0) );
       mText.scale( new Static3D(factor,factor,factor) );
-      mText.sink(0.5f, new Static2D( textWidth/2, textHeight/2), 5000, 0.0f);
+
+      Dynamic1D sinkDyn = new Dynamic1D();
+      sinkDyn.setDuration(5000);
+      sinkDyn.setCount(0);
+      sinkDyn.add(new Static1D(1.0f));
+      sinkDyn.add(new Static1D(0.5f));
+
+      mText.sink(sinkDyn, new Static2D(textWidth/2,textHeight/2));
 
       Dynamic1D macroblockDyn = new Dynamic1D();
       macroblockDyn.setDuration(10000);
diff --git a/src/main/java/org/distorted/examples/fov/FOVRenderer.java b/src/main/java/org/distorted/examples/fov/FOVRenderer.java
index af22ba5..25ebc4b 100644
--- a/src/main/java/org/distorted/examples/fov/FOVRenderer.java
+++ b/src/main/java/org/distorted/examples/fov/FOVRenderer.java
@@ -115,18 +115,13 @@ class FOVRenderer implements GLSurfaceView.Renderer
         
       int min = w<h ? w:h;
         
-      Static3D dp3D = new Static3D(0,0,min/5);
-      Static4D dr = new Static4D(0,0,min/5,min/5);
-        
-      Static2D point1 = new Static2D(  w/4,   h/4);
-      Static2D point2 = new Static2D(3*w/4,   h/4);
-      Static2D point3 = new Static2D(  w/4, 3*h/4);
-      Static2D point4 = new Static2D(3*w/4, 3*h/4);
-       
-      fov.distort(dp3D, dr, point1, 0, 0.5f);
-      fov.distort(dp3D, dr, point2, 0, 0.5f);
-      fov.distort(dp3D, dr, point3, 0, 0.5f);
-      fov.distort(dp3D, dr, point4, 0, 0.5f);
+      Static3D vector = new Static3D(0,0,min/5);
+      Static4D region = new Static4D(0,0,min/5,min/5);
+
+      fov.distort(vector, new Static2D(  w/4,   h/4), region);
+      fov.distort(vector, new Static2D(3*w/4,   h/4), region);
+      fov.distort(vector, new Static2D(  w/4, 3*h/4), region);
+      fov.distort(vector, new Static2D(3*w/4, 3*h/4), region);
       }
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
diff --git a/src/main/java/org/distorted/examples/listener/ListenerRenderer.java b/src/main/java/org/distorted/examples/listener/ListenerRenderer.java
index 27eca31..6ec4254 100644
--- a/src/main/java/org/distorted/examples/listener/ListenerRenderer.java
+++ b/src/main/java/org/distorted/examples/listener/ListenerRenderer.java
@@ -31,6 +31,7 @@ import org.distorted.examples.R;
 import org.distorted.library.Distorted;
 import org.distorted.library.DistortedBitmap;
 import org.distorted.library.EffectTypes;
+import org.distorted.library.type.Dynamic3D;
 import org.distorted.library.type.Static2D;
 import org.distorted.library.type.Static3D;
 import org.distorted.library.type.Static4D;
@@ -70,12 +71,14 @@ class ListenerRenderer implements GLSurfaceView.Renderer,EffectListener
       int pointx   = mRnd.nextInt( (int)(0.8f*bmpWidth ))+ (int)(0.1f*bmpWidth ); // at a random place on the bitmap (but not near the edge)
       int pointy   = mRnd.nextInt( (int)(0.8f*bmpHeight))+ (int)(0.1f*bmpHeight); // 
       int duration = 1000 + mRnd.nextInt(3000);                                   // for anytime from 3 to 4 seconds 
-        
-      Static3D dp3d = new Static3D(0,0,height);
-      Static2D dp2d = new Static2D(pointx,pointy);
-      Static4D dr  = new Static4D(0,0,radius,radius);
-     
-      return water.distort(dp3d, dr, dp2d, duration, 1.0f);
+
+      Dynamic3D dDistort = new Dynamic3D();
+      dDistort.setCount(1);
+      dDistort.setDuration(duration);
+      dDistort.add(new Static3D(0,0,     0));
+      dDistort.add(new Static3D(0,0,height));
+
+      return water.distort(dDistort, new Static2D(pointx,pointy), new Static4D(0,0,radius,radius));
       }
    
 ///////////////////////////////////////////////////////////////////////////////////////////////////
diff --git a/src/main/java/org/distorted/examples/monalisa/MonaLisaRenderer.java b/src/main/java/org/distorted/examples/monalisa/MonaLisaRenderer.java
index 2c63d8e..e6b6e83 100644
--- a/src/main/java/org/distorted/examples/monalisa/MonaLisaRenderer.java
+++ b/src/main/java/org/distorted/examples/monalisa/MonaLisaRenderer.java
@@ -29,6 +29,7 @@ import org.distorted.examples.R;
 import org.distorted.library.Distorted;
 import org.distorted.library.DistortedBitmap;
 import org.distorted.library.EffectTypes;
+import org.distorted.library.type.Dynamic3D;
 import org.distorted.library.type.Static2D;
 import org.distorted.library.type.Static3D;
 import org.distorted.library.type.Static4D;
@@ -46,7 +47,8 @@ class MonaLisaRenderer implements GLSurfaceView.Renderer
     private DistortedBitmap monaLisa;
     private Static2D pLeft, pRight;
     private Static4D rLeft, rRight;
-    private Static3D vLeft, vRight;
+    private Dynamic3D dLeft, dRight;
+
     private int bmpHeight, bmpWidth;
     
 ///////////////////////////////////////////////////////////////////////////////////////////////////
@@ -60,9 +62,21 @@ class MonaLisaRenderer implements GLSurfaceView.Renderer
       
       rLeft = new Static4D(-10,-10,25,25);
       rRight= new Static4D( 10, -5,25,25);
-      
-      vLeft = new Static3D(-20,-20,0);
-      vRight= new Static3D( 20,-10,0);
+
+      dLeft = new Dynamic3D();
+      dRight= new Dynamic3D();
+
+      dLeft.setDuration(1000);
+      dRight.setDuration(1000);
+
+      dLeft.setCount(0);
+      dRight.setCount(0);
+
+      dLeft.add( new Static3D(  0,  0,0) );
+      dLeft.add( new Static3D(-20,-20,0) );
+
+      dRight.add( new Static3D(  0,  0,0) );
+      dRight.add( new Static3D( 20,-10,0) );
       }
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
@@ -125,9 +139,9 @@ class MonaLisaRenderer implements GLSurfaceView.Renderer
       bmpWidth  = bitmap.getWidth();
       
       monaLisa = new DistortedBitmap(bitmap, 10);
-      monaLisa.distort( vLeft, rLeft , pLeft, 1000, 0);
-      monaLisa.distort(vRight, rRight, pRight,1000, 0);
-      
+      monaLisa.distort( dLeft, pLeft , rLeft );
+      monaLisa.distort(dRight, pRight, rRight);
+
       try
         {
         Distorted.onSurfaceCreated(mView.getContext());
diff --git a/src/main/java/org/distorted/examples/movingeffects/MovingEffectsSurfaceView.java b/src/main/java/org/distorted/examples/movingeffects/MovingEffectsSurfaceView.java
index 0140688..35d8c43 100644
--- a/src/main/java/org/distorted/examples/movingeffects/MovingEffectsSurfaceView.java
+++ b/src/main/java/org/distorted/examples/movingeffects/MovingEffectsSurfaceView.java
@@ -38,7 +38,7 @@ import org.distorted.library.type.Static2D;
 import org.distorted.library.type.Static3D;
 import org.distorted.library.type.Static4D;
 
-///////////////////////////////////////////////////////////////////
+///////////////////////////////////////////////////////////////////////////////////////////////////
 
 public class MovingEffectsSurfaceView extends GLSurfaceView
     {
@@ -57,11 +57,8 @@ public class MovingEffectsSurfaceView extends GLSurfaceView
     private static int xDown,yDown;
     private static int mScrW, mScrH;
 
-    private static Dynamic1D macroDyn, alphaDyn;
     private static Dynamic2D di2D;
-    private static Dynamic3D di3D;
     private static Static4D dr;
-
     private static Dynamic4D mRegion;
 
     private static Paint mPaint;
@@ -71,24 +68,12 @@ public class MovingEffectsSurfaceView extends GLSurfaceView
     
     private static int mCurrEffect;
     
-///////////////////////////////////////////////////////////////////
+///////////////////////////////////////////////////////////////////////////////////////////////////
     
     public MovingEffectsSurfaceView(Context c, AttributeSet attrs) 
       {
       super(c, attrs);
 
-      macroDyn = new Dynamic1D();
-      macroDyn.setDuration(0);
-      macroDyn.setCount(0.5f);
-      macroDyn.add(new Static1D(1));
-      macroDyn.add(new Static1D(3));
-
-      alphaDyn = new Dynamic1D();
-      alphaDyn.setDuration(0);
-      alphaDyn.setCount(0.5f);
-      alphaDyn.add(new Static1D(1.0f));
-      alphaDyn.add(new Static1D(0.5f));
-
       mCurrEffect=EFFECT_POINTS;
       mPaint = new Paint();
       mPaint.setStyle(Style.FILL);
@@ -97,11 +82,7 @@ public class MovingEffectsSurfaceView extends GLSurfaceView
       di2D = new Dynamic2D();
       di2D.setCount(0.0f);
       di2D.setDuration(LOOP_TIME);
-      
-      di3D = new Dynamic3D();
-      di3D.add(new Static3D(0,0, 0));
-      di3D.add(new Static3D(0,0,30));
-      
+
       dr = new Static4D(0,0,60,60);
 
       mRegion = new Dynamic4D();
@@ -125,7 +106,7 @@ public class MovingEffectsSurfaceView extends GLSurfaceView
         }
       }
 
-///////////////////////////////////////////////////////////////////
+///////////////////////////////////////////////////////////////////////////////////////////////////
 
     public static void setScreenSize(int width, int height)
       {
@@ -133,14 +114,14 @@ public class MovingEffectsSurfaceView extends GLSurfaceView
       mScrH = height;
       }
 
-///////////////////////////////////////////////////////////////////
+///////////////////////////////////////////////////////////////////////////////////////////////////
 
     public static int getCurrentEffect()
       {
       return mCurrEffect;
       }
     
-///////////////////////////////////////////////////////////////////
+///////////////////////////////////////////////////////////////////////////////////////////////////
     
     public static void Bubble()
       {
@@ -150,12 +131,12 @@ public class MovingEffectsSurfaceView extends GLSurfaceView
         {
         MovingEffectsRenderer.mBackground.abortEffects(EffectTypes.VERTEX);
         MovingEffectsRenderer.mBackground.abortEffects(EffectTypes.FRAGMENT);
-        MovingEffectsRenderer.mBackground.distort(di3D, dr, di2D);
+        MovingEffectsRenderer.mBackground.distort( new Static3D(0,0,30) , di2D, dr);
         mCurrEffect = EFFECT_BUBBLE;
         }
       }
 
-///////////////////////////////////////////////////////////////////
+///////////////////////////////////////////////////////////////////////////////////////////////////
 
     public static void Sink()
       {
@@ -165,12 +146,12 @@ public class MovingEffectsSurfaceView extends GLSurfaceView
         {
         MovingEffectsRenderer.mBackground.abortEffects(EffectTypes.VERTEX);
         MovingEffectsRenderer.mBackground.abortEffects(EffectTypes.FRAGMENT);
-        MovingEffectsRenderer.mBackground.sink(10.0f, dr, di2D, 0, 0.5f);
+        MovingEffectsRenderer.mBackground.sink(new Static1D(10), di2D, dr);
         mCurrEffect = EFFECT_SINK;
         }
       }
 
-///////////////////////////////////////////////////////////////////
+///////////////////////////////////////////////////////////////////////////////////////////////////
 
     public static void Macroblock()
       {
@@ -180,12 +161,12 @@ public class MovingEffectsSurfaceView extends GLSurfaceView
         {
         MovingEffectsRenderer.mBackground.abortEffects(EffectTypes.VERTEX);
         MovingEffectsRenderer.mBackground.abortEffects(EffectTypes.FRAGMENT);
-        MovingEffectsRenderer.mBackground.macroblock(macroDyn, mRegion);
+        MovingEffectsRenderer.mBackground.macroblock(new Static1D(3), mRegion);
         mCurrEffect = EFFECT_MACRO;
         }
       }
 
-///////////////////////////////////////////////////////////////////
+///////////////////////////////////////////////////////////////////////////////////////////////////
 
     public static void Transparency()
       {
@@ -195,12 +176,12 @@ public class MovingEffectsSurfaceView extends GLSurfaceView
         {
         MovingEffectsRenderer.mBackground.abortEffects(EffectTypes.VERTEX);
         MovingEffectsRenderer.mBackground.abortEffects(EffectTypes.FRAGMENT);
-        MovingEffectsRenderer.mBackground.alpha(alphaDyn, mRegion, true);
+        MovingEffectsRenderer.mBackground.alpha(new Static1D(0.5f), mRegion, true);
         mCurrEffect = EFFECT_TRANS;
         }
       }
 
-///////////////////////////////////////////////////////////////////
+///////////////////////////////////////////////////////////////////////////////////////////////////
 
     public static void Swirl()
       {
@@ -210,12 +191,12 @@ public class MovingEffectsSurfaceView extends GLSurfaceView
         {
         MovingEffectsRenderer.mBackground.abortEffects(EffectTypes.VERTEX);
         MovingEffectsRenderer.mBackground.abortEffects(EffectTypes.FRAGMENT);
-        MovingEffectsRenderer.mBackground.swirl(30, dr, di2D);
+        MovingEffectsRenderer.mBackground.swirl( new Static1D(30), di2D, dr);
         mCurrEffect = EFFECT_SWIRL;
         }
       }
     
-///////////////////////////////////////////////////////////////////
+///////////////////////////////////////////////////////////////////////////////////////////////////
 
     public static void Abort()
       {
@@ -229,7 +210,7 @@ public class MovingEffectsSurfaceView extends GLSurfaceView
         }
       }
 
-///////////////////////////////////////////////////////////////////
+///////////////////////////////////////////////////////////////////////////////////////////////////
  
     public static void drawCurve(Canvas c, long time)
       {
@@ -265,7 +246,7 @@ public class MovingEffectsSurfaceView extends GLSurfaceView
         }
       }
        
-///////////////////////////////////////////////////////////////////
+///////////////////////////////////////////////////////////////////////////////////////////////////
     
     @Override public boolean onTouchEvent(MotionEvent event) 
       {
@@ -314,8 +295,4 @@ public class MovingEffectsSurfaceView extends GLSurfaceView
         }
       return true;
       }
- 
-///////////////////////////////////////////////////////////////////
-// end of file
-
   }
diff --git a/src/main/java/org/distorted/examples/plainmonalisa/RenderThread.java b/src/main/java/org/distorted/examples/plainmonalisa/RenderThread.java
index 8c918e5..cc41dc7 100644
--- a/src/main/java/org/distorted/examples/plainmonalisa/RenderThread.java
+++ b/src/main/java/org/distorted/examples/plainmonalisa/RenderThread.java
@@ -34,6 +34,7 @@ import android.view.SurfaceView;
 import org.distorted.library.Distorted;
 import org.distorted.library.DistortedBitmap;
 import org.distorted.library.EffectTypes;
+import org.distorted.library.type.Dynamic3D;
 import org.distorted.library.type.Static2D;
 import org.distorted.library.type.Static3D;
 import org.distorted.library.type.Static4D;
@@ -65,7 +66,8 @@ public class RenderThread extends Thread
 
   private Static2D pLeft, pRight;
   private Static4D rLeft, rRight;
-  private Static3D vLeft, vRight;
+
+  private Dynamic3D dLeft, dRight;
 
   SurfaceView mView;
 
@@ -82,8 +84,20 @@ public class RenderThread extends Thread
     rLeft = new Static4D(-10,-10,25,25);
     rRight= new Static4D( 10, -5,25,25);
 
-    vLeft = new Static3D(-20,-20,0);
-    vRight= new Static3D( 20,-10,0);
+    dLeft = new Dynamic3D();
+    dRight= new Dynamic3D();
+
+    dLeft.setDuration(1000);
+    dRight.setDuration(1000);
+
+    dLeft.setCount(0);
+    dRight.setCount(0);
+
+    dLeft.add( new Static3D(  0,  0,0) );
+    dLeft.add( new Static3D(-20,-20,0) );
+
+    dRight.add( new Static3D(  0,  0,0) );
+    dRight.add( new Static3D( 20,-10,0) );
     }
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
@@ -181,8 +195,8 @@ public class RenderThread extends Thread
       }
 
     monaLisa = new DistortedBitmap(bmp, 10);
-    monaLisa.distort( vLeft, rLeft , pLeft, 1000, 0);
-    monaLisa.distort(vRight, rRight, pRight,1000, 0);
+    monaLisa.distort( dLeft, pLeft , rLeft );
+    monaLisa.distort(dRight, pRight, rRight);
 
     bmpHeight = bmp.getHeight();
     bmpWidth  = bmp.getWidth();
diff --git a/src/main/java/org/distorted/examples/save/SaveRenderer.java b/src/main/java/org/distorted/examples/save/SaveRenderer.java
index 8632101..b83c301 100644
--- a/src/main/java/org/distorted/examples/save/SaveRenderer.java
+++ b/src/main/java/org/distorted/examples/save/SaveRenderer.java
@@ -209,8 +209,8 @@ class SaveRenderer implements GLSurfaceView.Renderer
       
     mGirl = new DistortedBitmap(bitmap, 30);
 
-    mGirl.sink( diSink, sinkRegion, pLeft );
-    mGirl.sink( diSink, sinkRegion, pRight);
+    mGirl.sink( diSink, pLeft , sinkRegion);
+    mGirl.sink( diSink, pRight, sinkRegion);
 
     try
       {
