commit 47316d200d56f7801a561a036c9960aadb30467e
Author: leszek <leszek@koltunski.pl>
Date:   Sun Jun 11 23:42:51 2017 +0100

    Some progress with Effect classes.
    
    11 apps compile now.

diff --git a/src/main/java/org/distorted/library/effect/Effect.java b/src/main/java/org/distorted/library/effect/Effect.java
index 1f7db6d..d3ea3c1 100644
--- a/src/main/java/org/distorted/library/effect/Effect.java
+++ b/src/main/java/org/distorted/library/effect/Effect.java
@@ -125,7 +125,7 @@ public abstract class Effect
 
   Effect(EffectType type, EffectName name, int dimension, boolean center, boolean region, float[] unity)
     {
-    mID        = mNextID++;
+    mID        = (mNextID++)<<EffectType.LENGTH + type.ordinal();
 
     mName      = name;
     mType      = type;
diff --git a/src/main/java/org/distorted/library/main/DistortedEffects.java b/src/main/java/org/distorted/library/main/DistortedEffects.java
index a840511..a1e5e95 100644
--- a/src/main/java/org/distorted/library/main/DistortedEffects.java
+++ b/src/main/java/org/distorted/library/main/DistortedEffects.java
@@ -466,7 +466,26 @@ public class DistortedEffects
       default         : return 0;
       }
     }
-    
+
+///////////////////////////////////////////////////////////////////////////////////////////////////
+/**
+ * Aborts all Effect by its ID.
+ *
+ * @param id the Id of the Effect to be removed, as returned by getID().
+ * @return Number of effects aborted.
+ */
+  public int abortById(long id)
+    {
+    long type = id&EffectType.MASK;
+
+    if( type == EffectType.MATRIX.ordinal()      ) return mM.abortAll(true);
+    if( type == EffectType.VERTEX.ordinal()      ) return mV.abortAll(true);
+    if( type == EffectType.FRAGMENT.ordinal()    ) return mF.abortAll(true);
+//  if( type == EffectType.POSTPROCESS.ordinal() ) return mP.abortAll(true);
+
+    return 0;
+    }
+
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 /**
  * Aborts a single Effect.
