commit 2ef5dd9eda88dfb1ca75261f574c0c62eb9fba32
Author: leszek <leszek@koltunski.pl>
Date:   Mon Jun 12 23:56:37 2017 +0100

    Bugfixes for the recent 'Effect classes' API change.

diff --git a/src/main/java/org/distorted/library/effect/Effect.java b/src/main/java/org/distorted/library/effect/Effect.java
index 6ca36a6..757a7ec 100644
--- a/src/main/java/org/distorted/library/effect/Effect.java
+++ b/src/main/java/org/distorted/library/effect/Effect.java
@@ -142,6 +142,6 @@ public abstract class Effect
 
     mUnityDim[n] = l;
 
-    mID = (mNextID++)<<EffectType.LENGTH + mType.ordinal();
+    mID = ((mNextID++)<<EffectType.LENGTH) + mType.ordinal();
     }
   }
diff --git a/src/main/java/org/distorted/library/effect/MatrixEffectQuaternion.java b/src/main/java/org/distorted/library/effect/MatrixEffectQuaternion.java
index c8d4e1b..6033a7f 100644
--- a/src/main/java/org/distorted/library/effect/MatrixEffectQuaternion.java
+++ b/src/main/java/org/distorted/library/effect/MatrixEffectQuaternion.java
@@ -23,6 +23,7 @@ import org.distorted.library.type.Data3D;
 import org.distorted.library.type.Data4D;
 import org.distorted.library.type.Dynamic3D;
 import org.distorted.library.type.Dynamic4D;
+import org.distorted.library.type.DynamicQuat;
 import org.distorted.library.type.Static3D;
 import org.distorted.library.type.Static4D;
 
@@ -45,9 +46,9 @@ public class MatrixEffectQuaternion extends MatrixEffect
       {
       mStatic0 = (Static4D)quaternion;
       }
-    else if( quaternion instanceof Dynamic4D)
+    else if( quaternion instanceof DynamicQuat)
       {
-      mDynamic0 = (Dynamic4D)quaternion;
+      mDynamic0 = (DynamicQuat)quaternion;
       }
 
     if( center instanceof Static3D)
diff --git a/src/main/java/org/distorted/library/main/DistortedEffects.java b/src/main/java/org/distorted/library/main/DistortedEffects.java
index a1e5e95..68b6d85 100644
--- a/src/main/java/org/distorted/library/main/DistortedEffects.java
+++ b/src/main/java/org/distorted/library/main/DistortedEffects.java
@@ -478,10 +478,10 @@ public class DistortedEffects
     {
     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);
+    if( type == EffectType.MATRIX.ordinal()      ) return mM.removeById(id);
+    if( type == EffectType.VERTEX.ordinal()      ) return mV.removeById(id);
+    if( type == EffectType.FRAGMENT.ordinal()    ) return mF.removeById(id);
+//  if( type == EffectType.POSTPROCESS.ordinal() ) return mP.removeById(id);
 
     return 0;
     }
diff --git a/src/main/java/org/distorted/library/main/EffectQueue.java b/src/main/java/org/distorted/library/main/EffectQueue.java
index 7248a8b..7bfcd34 100644
--- a/src/main/java/org/distorted/library/main/EffectQueue.java
+++ b/src/main/java/org/distorted/library/main/EffectQueue.java
@@ -157,6 +157,25 @@ abstract class EffectQueue
     return ret;
     }
 
+///////////////////////////////////////////////////////////////////////////////////////////////////
+
+  synchronized int removeById(long id)
+    {
+    int ret = 0;
+
+    for(int i=0; i<mNumEffects; i++)
+      {
+      if( mEffects[i].getID() == id )
+        {
+        remove(i);
+        i--;
+        ret++;
+        }
+      }
+
+    return ret;
+    }
+
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
   synchronized int removeEffect(Effect effect)
