commit 6c548f65970bf4171f2e0868f0b19906610c6bd2
Author: Leszek Koltunski <leszek@koltunski.pl>
Date:   Wed Dec 12 00:11:33 2018 +0000

    Minor cleanups.

diff --git a/src/main/java/org/distorted/examples/effects3d/Effects3DEffect.java b/src/main/java/org/distorted/examples/effects3d/Effects3DEffect.java
index 79d1cf4..90c3a1d 100644
--- a/src/main/java/org/distorted/examples/effects3d/Effects3DEffect.java
+++ b/src/main/java/org/distorted/examples/effects3d/Effects3DEffect.java
@@ -58,6 +58,7 @@ import org.distorted.library.type.Static4D;
 import org.distorted.library.type.Static5D;
 
 import java.lang.ref.WeakReference;
+import java.lang.reflect.Method;
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
@@ -97,25 +98,38 @@ class Effects3DEffect implements SeekBar.OnSeekBarChangeListener
   private long mId;
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
-// requires knowledge about effect nature
+// this will enable() all Fragment Effects twice (once for smooth variant, once for non-smooth)
+// but this shouldn't matter.
 
   static void enableAllEffects()
     {
-    VertexEffectDeform.enable();
-    VertexEffectDistort.enable();
-    VertexEffectPinch.enable();
-    VertexEffectSink.enable();
-    VertexEffectSwirl.enable();
-    VertexEffectWave.enable();
-
-    FragmentEffectAlpha.enable();
-    FragmentEffectBrightness.enable();
-    FragmentEffectChroma.enable();
-    FragmentEffectContrast.enable();
-    FragmentEffectSaturation.enable();
-
-    PostprocessEffectBlur.enable();
-    PostprocessEffectGlow.enable();
+    Method method=null;
+
+    for(EffectName name: EffectName.values())
+      {
+      if( name.getType() != EffectType.MATRIX )  // you don't need to enable Matrix Effects
+        {
+        Class<? extends Effect> cls = name.getEffectClass();
+
+        try
+          {
+          method = cls.getMethod("enable");
+          }
+        catch(NoSuchMethodException ex)
+          {
+          android.util.Log.e("Effects3DEffect", "exception getting method: "+ex.getMessage());
+          }
+
+        try
+          {
+          method.invoke(null);
+          }
+        catch(Exception ex)
+          {
+          android.util.Log.e("Effects3DEffect", "exception invoking method: "+ex.getMessage());
+          }
+        }
+      }
     }
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
