commit 6646c47623228c252291bbabaa29db21b2c1c273
Author: leszek <leszek@koltunski.pl>
Date:   Sun Jun 11 23:52:27 2017 +0100

    Some progress with Effect classes.
    
    12 apps compile now.

diff --git a/src/main/java/org/distorted/examples/fbo/FBORenderer.java b/src/main/java/org/distorted/examples/fbo/FBORenderer.java
index f314ce1..ac834f8 100644
--- a/src/main/java/org/distorted/examples/fbo/FBORenderer.java
+++ b/src/main/java/org/distorted/examples/fbo/FBORenderer.java
@@ -27,16 +27,20 @@ import javax.microedition.khronos.opengles.GL10;
 
 import org.distorted.examples.R;
 
+import org.distorted.library.effect.EffectName;
+import org.distorted.library.effect.FragmentEffectChroma;
+import org.distorted.library.effect.MatrixEffectMove;
+import org.distorted.library.effect.MatrixEffectRotate;
+import org.distorted.library.effect.MatrixEffectScale;
+import org.distorted.library.effect.VertexEffectSink;
 import org.distorted.library.main.DistortedEffects;
 import org.distorted.library.main.DistortedFramebuffer;
 import org.distorted.library.main.DistortedNode;
 import org.distorted.library.main.DistortedScreen;
 import org.distorted.library.main.Distorted;
-import org.distorted.library.EffectNames;
 import org.distorted.library.main.MeshCubes;
 import org.distorted.library.main.MeshFlat;
 import org.distorted.library.main.DistortedTexture;
-import org.distorted.library.EffectTypes;
 import org.distorted.library.type.Dynamic;
 import org.distorted.library.type.Dynamic1D;
 import org.distorted.library.type.Static1D;
@@ -60,6 +64,7 @@ class FBORenderer implements GLSurfaceView.Renderer
    private MeshCubes mMeshCubes;
    private int lisaHeight, lisaWidth;
    private boolean mDepth;
+   private Static3D mScale, mMove;
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
@@ -68,6 +73,10 @@ class FBORenderer implements GLSurfaceView.Renderer
       mView   = v;
       mDepth  = true;
       mEffects= new DistortedEffects();
+      mScale  = new Static3D(1,1,1);
+      mMove   = new Static3D(0,0,0);
+      mEffects.apply(new MatrixEffectMove(mMove));
+      mEffects.apply(new MatrixEffectScale(mScale));
       mScreen = new DistortedScreen(mView);
       }
 
@@ -104,23 +113,21 @@ class FBORenderer implements GLSurfaceView.Renderer
     
    public void onSurfaceChanged(GL10 glUnused, int width, int height)
       { 
-      mEffects.abortEffects(EffectTypes.MATRIX);
-         
       if( (float)lisaHeight/lisaWidth > (float)height/width )
         {
         int w = (height*lisaWidth)/lisaHeight;
         float factor = (float)height/lisaHeight;
 
-        mEffects.move( new Static3D((width-w)/2,0,0) );
-        mEffects.scale(factor);
+        mMove.set((width-w)/2,0,0);
+        mScale.set(factor,factor,factor);
         }
       else
         {
         int h = (width*lisaHeight)/lisaWidth;
         float factor = (float)width/lisaWidth;
 
-        mEffects.move( new Static3D(0,(height-h)/2,0) );
-        mEffects.scale(factor);
+        mMove.set(0,(height-h)/2,0);
+        mScale.set(factor,factor,factor);
         }
       
       mScreen.resize(width, height);
@@ -181,31 +188,32 @@ class FBORenderer implements GLSurfaceView.Renderer
       mScreen.attach(mRoot);
 
       float factor = lisaWidth/(2.0f*gridWidth);
-
-      gridEffects.move( new Static3D( (lisaWidth-factor*gridWidth)/2,(lisaHeight-factor*gridHeight)/2, gridWidth/(2*GRID)) );
-      gridEffects.scale(factor);
+      MatrixEffectMove move = new MatrixEffectMove( new Static3D((lisaWidth-factor*gridWidth)/2,(lisaHeight-factor*gridHeight)/2, gridWidth/(2.0f*GRID)));
+      MatrixEffectScale scale = new MatrixEffectScale( new Static3D(factor,factor,factor) );
+      gridEffects.apply(move);
+      gridEffects.apply(scale);
 
       Dynamic1D rotDyn = new Dynamic1D(12000,0.0f);
       rotDyn.add(new Static1D(  0));
       rotDyn.add(new Static1D(360));
       rotDyn.setMode(Dynamic.MODE_JUMP);
-
-      gridEffects.rotate(rotDyn, new Static3D(1,0,0), new Static3D(gridWidth/2,gridHeight/2,gridWidth/(2*GRID)) );
+      MatrixEffectRotate rotate = new MatrixEffectRotate(rotDyn, new Static3D(1,0,0), new Static3D(gridWidth/2,gridHeight/2,gridWidth/(2*GRID)));
+      gridEffects.apply(rotate);
 
       Dynamic1D sinkDyn = new Dynamic1D(3000,0.0f);
       sinkDyn.add(new Static1D(1.0f));
       sinkDyn.add(new Static1D(0.3f));
-
-      gridEffects.sink(sinkDyn, new Static3D(gridWidth/2,gridHeight/2, 0));
+      VertexEffectSink sink = new VertexEffectSink(sinkDyn, new Static3D(gridWidth/2,gridHeight/2, 0));
+      gridEffects.apply(sink);
 
       Dynamic1D chromaDyn = new Dynamic1D(5000,0.0f);
       chromaDyn.add(new Static1D(0.0f));
       chromaDyn.add(new Static1D(1.0f));
+      FragmentEffectChroma chroma = new FragmentEffectChroma(chromaDyn, new Static3D(0,0,1));
+      mEffects.apply(chroma);
 
-      mEffects.chroma(chromaDyn, new Static3D(0,0,1) );
-
-      DistortedEffects.enableEffect(EffectNames.SINK);
-      DistortedEffects.enableEffect(EffectNames.CHROMA);
+      DistortedEffects.enableEffect(EffectName.SINK);
+      DistortedEffects.enableEffect(EffectName.CHROMA);
 
       try
         {
diff --git a/src/main/java/org/distorted/examples/matrix3d/Matrix3DEffect.java b/src/main/java/org/distorted/examples/matrix3d/Matrix3DEffect.java
index d98b5ec..c1e85dc 100644
--- a/src/main/java/org/distorted/examples/matrix3d/Matrix3DEffect.java
+++ b/src/main/java/org/distorted/examples/matrix3d/Matrix3DEffect.java
@@ -24,9 +24,8 @@ import android.widget.SeekBar;
 import android.widget.TextView;
 
 import org.distorted.examples.R;
+import org.distorted.library.effect.EffectName;
 import org.distorted.library.main.DistortedEffects;
-import org.distorted.library.EffectNames;
-import org.distorted.library.EffectTypes;
 import org.distorted.library.type.Dynamic1D;
 import org.distorted.library.type.Dynamic2D;
 import org.distorted.library.type.Dynamic3D;
@@ -46,7 +45,7 @@ class Matrix3DEffect implements SeekBar.OnSeekBarChangeListener
   {
   private WeakReference<Matrix3DActivity> mAct;
 
-  private EffectNames mName;
+  private EffectName mName;
   private int[] mInter;
   private int[] mInterRegion;
   private int[] mInterCenter;
