commit 6637d0f2b3c88d6830025bf2ffdcdd07a11a4cfb
Author: Leszek Koltunski <leszek@distoretedandroid.org>
Date:   Wed Mar 1 12:06:52 2017 +0000

    Speed up shaders (both compilation and execution) by explicitly enabling only the needed effects.

diff --git a/src/main/java/org/distorted/examples/aroundtheworld/AroundTheWorldRenderer.java b/src/main/java/org/distorted/examples/aroundtheworld/AroundTheWorldRenderer.java
index 3c1e242..bd1418c 100644
--- a/src/main/java/org/distorted/examples/aroundtheworld/AroundTheWorldRenderer.java
+++ b/src/main/java/org/distorted/examples/aroundtheworld/AroundTheWorldRenderer.java
@@ -28,6 +28,7 @@ import org.distorted.examples.R;
 import org.distorted.library.Distorted;
 import org.distorted.library.DistortedEffects;
 import org.distorted.library.DistortedScreen;
+import org.distorted.library.EffectNames;
 import org.distorted.library.MeshFlat;
 import org.distorted.library.DistortedTexture;
 import org.distorted.library.EffectTypes;
@@ -135,6 +136,14 @@ class AroundTheWorldRenderer implements GLSurfaceView.Renderer
       mScreen.detachAll();
       mScreen.attach(texture, mEffects, mesh );
 
+      DistortedEffects.enableEffect(EffectNames.DISTORT);
+      DistortedEffects.enableEffect(EffectNames.SINK);
+      DistortedEffects.enableEffect(EffectNames.PINCH);
+      DistortedEffects.enableEffect(EffectNames.SWIRL);
+      DistortedEffects.enableEffect(EffectNames.CHROMA);
+      DistortedEffects.enableEffect(EffectNames.SMOOTH_CHROMA);
+      DistortedEffects.enableEffect(EffectNames.CONTRAST);
+
       try
         {
         Distorted.onCreate(mView.getContext());
diff --git a/src/main/java/org/distorted/examples/bean/BeanRenderer.java b/src/main/java/org/distorted/examples/bean/BeanRenderer.java
index f648f61..b6c583c 100644
--- a/src/main/java/org/distorted/examples/bean/BeanRenderer.java
+++ b/src/main/java/org/distorted/examples/bean/BeanRenderer.java
@@ -29,6 +29,7 @@ import org.distorted.examples.R;
 
 import org.distorted.library.DistortedEffects;
 import org.distorted.library.DistortedScreen;
+import org.distorted.library.EffectNames;
 import org.distorted.library.EffectTypes;
 import org.distorted.library.Distorted;
 import org.distorted.library.DistortedTexture;
@@ -156,6 +157,8 @@ class BeanRenderer implements GLSurfaceView.Renderer
       mScreen.detachAll();
       mScreen.attach(texture,mEffects,mesh);
 
+      DistortedEffects.enableEffect(EffectNames.DISTORT);
+
       try
         {
         Distorted.onCreate(mView.getContext());
diff --git a/src/main/java/org/distorted/examples/blur/BlurRenderer.java b/src/main/java/org/distorted/examples/blur/BlurRenderer.java
index baa0c1d..faa0459 100644
--- a/src/main/java/org/distorted/examples/blur/BlurRenderer.java
+++ b/src/main/java/org/distorted/examples/blur/BlurRenderer.java
@@ -29,6 +29,7 @@ import org.distorted.library.Distorted;
 import org.distorted.library.DistortedEffects;
 import org.distorted.library.DistortedScreen;
 import org.distorted.library.DistortedTexture;
+import org.distorted.library.EffectNames;
 import org.distorted.library.EffectTypes;
 import org.distorted.library.MeshFlat;
 import org.distorted.library.type.Dynamic1D;
@@ -142,6 +143,8 @@ class BlurRenderer implements GLSurfaceView.Renderer
       mScreen.detachAll();
       mScreen.attach(texture,mEffects,mMesh);
 
+      DistortedEffects.enableEffect(EffectNames.BLUR);
+
       try
         {
         Distorted.onCreate(mView.getContext());
diff --git a/src/main/java/org/distorted/examples/catanddog/CatAndDogRenderer.java b/src/main/java/org/distorted/examples/catanddog/CatAndDogRenderer.java
index eeb8221..9609ee2 100644
--- a/src/main/java/org/distorted/examples/catanddog/CatAndDogRenderer.java
+++ b/src/main/java/org/distorted/examples/catanddog/CatAndDogRenderer.java
@@ -30,6 +30,7 @@ import org.distorted.library.Distorted;
 import org.distorted.library.DistortedEffects;
 import org.distorted.library.DistortedScreen;
 import org.distorted.library.DistortedTexture;
+import org.distorted.library.EffectNames;
 import org.distorted.library.MeshFlat;
 import org.distorted.library.EffectTypes;
 import org.distorted.library.type.Dynamic1D;
@@ -119,6 +120,9 @@ class CatAndDogRenderer implements GLSurfaceView.Renderer
       mScreen.detachAll();
       mScreen.attach(texture,mEffects,mMesh);
 
+      DistortedEffects.enableEffect(EffectNames.SMOOTH_CHROMA);
+      DistortedEffects.enableEffect(EffectNames.ALPHA);
+
       try
         {
         Distorted.onCreate(mView.getContext());
diff --git a/src/main/java/org/distorted/examples/check/CheckRenderer.java b/src/main/java/org/distorted/examples/check/CheckRenderer.java
index 407f7c0..6292d39 100644
--- a/src/main/java/org/distorted/examples/check/CheckRenderer.java
+++ b/src/main/java/org/distorted/examples/check/CheckRenderer.java
@@ -31,6 +31,7 @@ import org.distorted.library.Distorted;
 import org.distorted.library.DistortedEffects;
 import org.distorted.library.DistortedScreen;
 import org.distorted.library.DistortedTexture;
+import org.distorted.library.EffectNames;
 import org.distorted.library.MeshFlat;
 import org.distorted.library.EffectTypes;
 import org.distorted.library.type.Dynamic3D;
@@ -182,6 +183,10 @@ class CheckRenderer implements GLSurfaceView.Renderer
         Log.e("Check", "Failed to add Chroma effect!");
         }
 
+      DistortedEffects.enableEffect(EffectNames.SWIRL);
+      DistortedEffects.enableEffect(EffectNames.DEFORM);
+      DistortedEffects.enableEffect(EffectNames.CHROMA);
+
       try
         {
         Distorted.onCreate(mView.getContext());
diff --git a/src/main/java/org/distorted/examples/deform/DeformRenderer.java b/src/main/java/org/distorted/examples/deform/DeformRenderer.java
index aeb8e9a..e71df26 100644
--- a/src/main/java/org/distorted/examples/deform/DeformRenderer.java
+++ b/src/main/java/org/distorted/examples/deform/DeformRenderer.java
@@ -232,6 +232,9 @@ class DeformRenderer implements GLSurfaceView.Renderer
      {
      GLES30.glClearColor(0.0f, 0.0f, 0.0f, 1.0f);
 
+     DistortedEffects.enableEffect(EffectNames.DISTORT);
+     DistortedEffects.enableEffect(EffectNames.DEFORM);
+
      try
        {
        Distorted.onCreate(mView.getContext());
diff --git a/src/main/java/org/distorted/examples/differentbitmaps/DifferentBitmapsRenderer.java b/src/main/java/org/distorted/examples/differentbitmaps/DifferentBitmapsRenderer.java
index 040cc99..3194fa3 100644
--- a/src/main/java/org/distorted/examples/differentbitmaps/DifferentBitmapsRenderer.java
+++ b/src/main/java/org/distorted/examples/differentbitmaps/DifferentBitmapsRenderer.java
@@ -31,6 +31,7 @@ import org.distorted.library.Distorted;
 import org.distorted.library.DistortedScreen;
 import org.distorted.library.DistortedTexture;
 import org.distorted.library.DistortedEffects;
+import org.distorted.library.EffectNames;
 import org.distorted.library.MeshFlat;
 import org.distorted.library.EffectTypes;
 import org.distorted.library.type.Dynamic3D;
@@ -171,6 +172,9 @@ class DifferentBitmapsRenderer implements GLSurfaceView.Renderer
       mScreen.detachAll();
       for(int i=NUM-1; i>=0; i--) mScreen.attach(texture[i], mEffects[i], mesh);
 
+      DistortedEffects.enableEffect(EffectNames.SINK);
+      DistortedEffects.enableEffect(EffectNames.DISTORT);
+
       try
         {
         Distorted.onCreate(mView.getContext());
diff --git a/src/main/java/org/distorted/examples/differenteffects/DifferentEffectsRenderer.java b/src/main/java/org/distorted/examples/differenteffects/DifferentEffectsRenderer.java
index 024f224..d9af581 100644
--- a/src/main/java/org/distorted/examples/differenteffects/DifferentEffectsRenderer.java
+++ b/src/main/java/org/distorted/examples/differenteffects/DifferentEffectsRenderer.java
@@ -30,6 +30,7 @@ import org.distorted.examples.R;
 import org.distorted.library.Distorted;
 import org.distorted.library.DistortedEffects;
 import org.distorted.library.DistortedScreen;
+import org.distorted.library.EffectNames;
 import org.distorted.library.MeshFlat;
 import org.distorted.library.DistortedTexture;
 import org.distorted.library.EffectTypes;
@@ -171,6 +172,10 @@ class DifferentEffectsRenderer implements GLSurfaceView.Renderer
      mScreen.detachAll();
      for(int i=NUM-1; i>=0; i--) mScreen.attach(texture, mEffects[i], mesh);
 
+     DistortedEffects.enableEffect(EffectNames.SINK);
+     DistortedEffects.enableEffect(EffectNames.DISTORT);
+     DistortedEffects.enableEffect(EffectNames.CHROMA);
+
      try
        {
        Distorted.onCreate(mView.getContext());
diff --git a/src/main/java/org/distorted/examples/effectqueue/EffectQueueRenderer.java b/src/main/java/org/distorted/examples/effectqueue/EffectQueueRenderer.java
index f3196f6..1ab18dd 100644
--- a/src/main/java/org/distorted/examples/effectqueue/EffectQueueRenderer.java
+++ b/src/main/java/org/distorted/examples/effectqueue/EffectQueueRenderer.java
@@ -108,6 +108,12 @@ class EffectQueueRenderer implements GLSurfaceView.Renderer, EffectListener
     mScreen.detachAll();
     mScreen.attach(mTexture,mEffects,mMesh);
 
+    DistortedEffects.enableEffect(EffectNames.DISTORT);
+    DistortedEffects.enableEffect(EffectNames.SINK);
+    DistortedEffects.enableEffect(EffectNames.SMOOTH_ALPHA);
+    DistortedEffects.enableEffect(EffectNames.SATURATION);
+    DistortedEffects.enableEffect(EffectNames.SMOOTH_CHROMA);
+
     try
       {
       Distorted.onCreate(mView.getContext());
diff --git a/src/main/java/org/distorted/examples/effects3d/Effects3DRenderer.java b/src/main/java/org/distorted/examples/effects3d/Effects3DRenderer.java
index 84c109e..688e5ba 100644
--- a/src/main/java/org/distorted/examples/effects3d/Effects3DRenderer.java
+++ b/src/main/java/org/distorted/examples/effects3d/Effects3DRenderer.java
@@ -30,6 +30,7 @@ import org.distorted.library.DistortedEffects;
 import org.distorted.library.DistortedNode;
 import org.distorted.library.DistortedScreen;
 import org.distorted.library.DistortedTexture;
+import org.distorted.library.EffectNames;
 import org.distorted.library.MeshFlat;
 import org.distorted.library.MeshObject;
 import org.distorted.library.EffectTypes;
@@ -276,6 +277,18 @@ class Effects3DRenderer implements GLSurfaceView.Renderer
       mCenterTexture.setTexture(bitmapC);
       mRegionTexture.setTexture(bitmapR);
 
+      EffectTypes type;
+
+      for( EffectNames name : EffectNames.values() )
+        {
+        type = name.getType();
+
+        if( type== EffectTypes.VERTEX || type==EffectTypes.FRAGMENT )
+          {
+          DistortedEffects.enableEffect(name);
+          }
+        }
+
       try
         {
         Distorted.onCreate(mView.getContext());
diff --git a/src/main/java/org/distorted/examples/fbo/FBORenderer.java b/src/main/java/org/distorted/examples/fbo/FBORenderer.java
index f9407a7..16defbd 100644
--- a/src/main/java/org/distorted/examples/fbo/FBORenderer.java
+++ b/src/main/java/org/distorted/examples/fbo/FBORenderer.java
@@ -32,6 +32,7 @@ import org.distorted.library.DistortedFramebuffer;
 import org.distorted.library.DistortedNode;
 import org.distorted.library.DistortedScreen;
 import org.distorted.library.Distorted;
+import org.distorted.library.EffectNames;
 import org.distorted.library.MeshCubes;
 import org.distorted.library.MeshFlat;
 import org.distorted.library.DistortedTexture;
@@ -189,7 +190,10 @@ class FBORenderer implements GLSurfaceView.Renderer
       chromaDyn.add(new Static1D(1.0f));
 
       mEffects.chroma(chromaDyn, new Static3D(0,0,1) );
-      
+
+      DistortedEffects.enableEffect(EffectNames.SINK);
+      DistortedEffects.enableEffect(EffectNames.CHROMA);
+
       try
         {
         Distorted.onCreate(mView.getContext());
diff --git a/src/main/java/org/distorted/examples/flag/FlagRenderer.java b/src/main/java/org/distorted/examples/flag/FlagRenderer.java
index b672951..e28ee37 100644
--- a/src/main/java/org/distorted/examples/flag/FlagRenderer.java
+++ b/src/main/java/org/distorted/examples/flag/FlagRenderer.java
@@ -28,6 +28,7 @@ import org.distorted.examples.R;
 import org.distorted.library.Distorted;
 import org.distorted.library.DistortedEffects;
 import org.distorted.library.DistortedScreen;
+import org.distorted.library.EffectNames;
 import org.distorted.library.MeshCubes;
 import org.distorted.library.DistortedTexture;
 import org.distorted.library.EffectTypes;
@@ -196,7 +197,9 @@ class FlagRenderer implements GLSurfaceView.Renderer
         }  
       
       mTexture.setTexture(bitmap);
-      
+
+      DistortedEffects.enableEffect(EffectNames.WAVE);
+
       try
         {
         Distorted.onCreate(mView.getContext());
diff --git a/src/main/java/org/distorted/examples/girl/GirlRenderer.java b/src/main/java/org/distorted/examples/girl/GirlRenderer.java
index 129d2b0..b840110 100644
--- a/src/main/java/org/distorted/examples/girl/GirlRenderer.java
+++ b/src/main/java/org/distorted/examples/girl/GirlRenderer.java
@@ -29,6 +29,7 @@ import org.distorted.examples.R;
 
 import org.distorted.library.Distorted;
 import org.distorted.library.DistortedScreen;
+import org.distorted.library.EffectNames;
 import org.distorted.library.MeshFlat;
 import org.distorted.library.DistortedTexture;
 import org.distorted.library.DistortedEffects;
@@ -213,6 +214,10 @@ class GirlRenderer implements GLSurfaceView.Renderer
       mScreen.detachAll();
       mScreen.attach(texture,mEffects,mesh);
 
+      DistortedEffects.enableEffect(EffectNames.DISTORT);
+      DistortedEffects.enableEffect(EffectNames.SINK);
+      DistortedEffects.enableEffect(EffectNames.SWIRL);
+
       try
         {
         Distorted.onCreate(mView.getContext());
diff --git a/src/main/java/org/distorted/examples/listener/ListenerRenderer.java b/src/main/java/org/distorted/examples/listener/ListenerRenderer.java
index d662528..aee1802 100644
--- a/src/main/java/org/distorted/examples/listener/ListenerRenderer.java
+++ b/src/main/java/org/distorted/examples/listener/ListenerRenderer.java
@@ -166,7 +166,9 @@ class ListenerRenderer implements GLSurfaceView.Renderer,EffectListener
       mScreen.attach(texture,mEffects,mesh);
 
       for(int i=0; i<NUM_BUBBLES; i++) randomizeNewBubble();
-      
+
+      DistortedEffects.enableEffect(EffectNames.DISTORT);
+
       try
         {
         Distorted.onCreate(mView.getContext());
diff --git a/src/main/java/org/distorted/examples/mirror/MirrorRenderer.java b/src/main/java/org/distorted/examples/mirror/MirrorRenderer.java
index 70199f8..a4f85f7 100644
--- a/src/main/java/org/distorted/examples/mirror/MirrorRenderer.java
+++ b/src/main/java/org/distorted/examples/mirror/MirrorRenderer.java
@@ -30,6 +30,7 @@ import org.distorted.library.DistortedEffects;
 import org.distorted.library.DistortedFramebuffer;
 import org.distorted.library.DistortedScreen;
 import org.distorted.library.DistortedTexture;
+import org.distorted.library.EffectNames;
 import org.distorted.library.MeshFlat;
 import org.distorted.library.type.Dynamic3D;
 import org.distorted.library.type.Static1D;
@@ -195,6 +196,8 @@ class MirrorRenderer implements GLSurfaceView.Renderer
       mTextureMirror.setTexture(bitmapM);
       mTextureHead.setTexture(bitmapH);
 
+      DistortedEffects.enableEffect(EffectNames.BRIGHTNESS);
+
       try
         {
         Distorted.onCreate(mView.getContext());
diff --git a/src/main/java/org/distorted/examples/monalisa/MonaLisaRenderer.java b/src/main/java/org/distorted/examples/monalisa/MonaLisaRenderer.java
index 756de9b..a7d6090 100644
--- a/src/main/java/org/distorted/examples/monalisa/MonaLisaRenderer.java
+++ b/src/main/java/org/distorted/examples/monalisa/MonaLisaRenderer.java
@@ -30,6 +30,7 @@ import org.distorted.library.Distorted;
 import org.distorted.library.DistortedEffects;
 import org.distorted.library.DistortedScreen;
 import org.distorted.library.DistortedTexture;
+import org.distorted.library.EffectNames;
 import org.distorted.library.MeshFlat;
 import org.distorted.library.EffectTypes;
 import org.distorted.library.type.Dynamic3D;
@@ -139,6 +140,8 @@ class MonaLisaRenderer implements GLSurfaceView.Renderer
       mScreen.detachAll();
       mScreen.attach(texture,mEffects,mesh);
 
+      DistortedEffects.enableEffect(EffectNames.DISTORT);
+
       try
         {
         Distorted.onCreate(mView.getContext());
diff --git a/src/main/java/org/distorted/examples/movingeffects/MovingEffectsRenderer.java b/src/main/java/org/distorted/examples/movingeffects/MovingEffectsRenderer.java
index 791aa78..ba325ba 100644
--- a/src/main/java/org/distorted/examples/movingeffects/MovingEffectsRenderer.java
+++ b/src/main/java/org/distorted/examples/movingeffects/MovingEffectsRenderer.java
@@ -32,6 +32,7 @@ import android.opengl.GLSurfaceView;
 import org.distorted.library.DistortedScreen;
 import org.distorted.library.DistortedTexture;
 import org.distorted.library.DistortedEffects;
+import org.distorted.library.EffectNames;
 import org.distorted.library.MeshFlat;
 import org.distorted.library.Distorted;
 
@@ -108,6 +109,12 @@ class MovingEffectsRenderer implements GLSurfaceView.Renderer
 
    public void onSurfaceCreated(GL10 glUnused, EGLConfig config) 
      {
+     DistortedEffects.enableEffect(EffectNames.SWIRL);
+     DistortedEffects.enableEffect(EffectNames.SMOOTH_ALPHA);
+     DistortedEffects.enableEffect(EffectNames.SMOOTH_CHROMA);
+     DistortedEffects.enableEffect(EffectNames.DISTORT);
+     DistortedEffects.enableEffect(EffectNames.SINK);
+
      try
        {
        Distorted.onCreate(mView.getContext());
diff --git a/src/main/java/org/distorted/examples/multiblur/MultiblurRenderer.java b/src/main/java/org/distorted/examples/multiblur/MultiblurRenderer.java
index 76db32b..9f46c3e 100644
--- a/src/main/java/org/distorted/examples/multiblur/MultiblurRenderer.java
+++ b/src/main/java/org/distorted/examples/multiblur/MultiblurRenderer.java
@@ -29,6 +29,7 @@ import org.distorted.library.Distorted;
 import org.distorted.library.DistortedEffects;
 import org.distorted.library.DistortedScreen;
 import org.distorted.library.DistortedTexture;
+import org.distorted.library.EffectNames;
 import org.distorted.library.EffectTypes;
 import org.distorted.library.MeshCubes;
 import org.distorted.library.type.DynamicQuat;
@@ -169,6 +170,8 @@ class MultiblurRenderer implements GLSurfaceView.Renderer
       mTex1.setTexture(bitmap1);
       mTex2.setTexture(bitmap2);
 
+      DistortedEffects.enableEffect(EffectNames.BLUR);
+
       try
         {
         Distorted.onCreate(mView.getContext());
diff --git a/src/main/java/org/distorted/examples/olimpic/OlimpicRenderer.java b/src/main/java/org/distorted/examples/olimpic/OlimpicRenderer.java
index 102a228..fe9b5bb 100644
--- a/src/main/java/org/distorted/examples/olimpic/OlimpicRenderer.java
+++ b/src/main/java/org/distorted/examples/olimpic/OlimpicRenderer.java
@@ -30,6 +30,7 @@ import org.distorted.examples.R;
 import org.distorted.library.DistortedEffects;
 import org.distorted.library.DistortedScreen;
 import org.distorted.library.DistortedNode;
+import org.distorted.library.EffectNames;
 import org.distorted.library.EffectTypes;
 import org.distorted.library.MeshFlat;
 import org.distorted.library.type.Dynamic1D;
@@ -209,7 +210,9 @@ class OlimpicRenderer implements GLSurfaceView.Renderer
         }  
       
       mLeaf.setTexture(leaf);
-      
+
+      DistortedEffects.enableEffect(EffectNames.CHROMA);
+
       try
         {
         Distorted.onCreate(mView.getContext());
diff --git a/src/main/java/org/distorted/examples/plainmonalisa/RenderThread.java b/src/main/java/org/distorted/examples/plainmonalisa/RenderThread.java
index 334e307..f030fb7 100644
--- a/src/main/java/org/distorted/examples/plainmonalisa/RenderThread.java
+++ b/src/main/java/org/distorted/examples/plainmonalisa/RenderThread.java
@@ -33,6 +33,7 @@ import android.view.SurfaceView;
 import org.distorted.library.Distorted;
 import org.distorted.library.DistortedEffects;
 import org.distorted.library.DistortedScreen;
+import org.distorted.library.EffectNames;
 import org.distorted.library.MeshFlat;
 import org.distorted.library.DistortedTexture;
 import org.distorted.library.EffectTypes;
@@ -216,6 +217,8 @@ class RenderThread extends Thread
     mScreen.detachAll();
     mScreen.attach(texture,mEffects,mesh);
 
+    DistortedEffects.enableEffect(EffectNames.DISTORT);
+
     try
       {
       Distorted.onCreate(mView.getContext());
diff --git a/src/main/java/org/distorted/examples/projection/ProjectionRenderer.java b/src/main/java/org/distorted/examples/projection/ProjectionRenderer.java
index 297a350..331c1df 100644
--- a/src/main/java/org/distorted/examples/projection/ProjectionRenderer.java
+++ b/src/main/java/org/distorted/examples/projection/ProjectionRenderer.java
@@ -25,6 +25,7 @@ import javax.microedition.khronos.opengles.GL10;
 import org.distorted.library.Distorted;
 import org.distorted.library.DistortedEffects;
 import org.distorted.library.DistortedScreen;
+import org.distorted.library.EffectNames;
 import org.distorted.library.MeshFlat;
 import org.distorted.library.DistortedTexture;
 import org.distorted.library.type.Static3D;
@@ -131,6 +132,8 @@ class ProjectionRenderer implements GLSurfaceView.Renderer
       {
       GLES30.glClearColor(0.0f, 0.0f, 0.0f, 1.0f);
 
+      DistortedEffects.enableEffect(EffectNames.DISTORT);
+
       try
         {
         Distorted.onCreate(mView.getContext());
diff --git a/src/main/java/org/distorted/examples/save/SaveRenderer.java b/src/main/java/org/distorted/examples/save/SaveRenderer.java
index 75d71d1..7c35bf4 100644
--- a/src/main/java/org/distorted/examples/save/SaveRenderer.java
+++ b/src/main/java/org/distorted/examples/save/SaveRenderer.java
@@ -34,6 +34,7 @@ import org.distorted.library.Distorted;
 import org.distorted.library.DistortedEffects;
 import org.distorted.library.DistortedScreen;
 import org.distorted.library.DistortedTexture;
+import org.distorted.library.EffectNames;
 import org.distorted.library.MeshFlat;
 import org.distorted.library.DistortedFramebuffer;
 import org.distorted.library.EffectTypes;
@@ -255,6 +256,8 @@ class SaveRenderer implements GLSurfaceView.Renderer
     mScreen.detachAll();
     mScreen.attach(texture,mEffects,mesh);
 
+    DistortedEffects.enableEffect(EffectNames.SINK);
+
     try
       {
       Distorted.onCreate(mView.getContext());
diff --git a/src/main/java/org/distorted/examples/sink/SinkRenderer.java b/src/main/java/org/distorted/examples/sink/SinkRenderer.java
index 4eb406e..bdb52ba 100644
--- a/src/main/java/org/distorted/examples/sink/SinkRenderer.java
+++ b/src/main/java/org/distorted/examples/sink/SinkRenderer.java
@@ -30,6 +30,7 @@ import org.distorted.examples.R;
 import org.distorted.library.Distorted;
 import org.distorted.library.DistortedEffects;
 import org.distorted.library.DistortedScreen;
+import org.distorted.library.EffectNames;
 import org.distorted.library.MeshFlat;
 import org.distorted.library.DistortedTexture;
 import org.distorted.library.EffectTypes;
@@ -133,6 +134,8 @@ class SinkRenderer implements GLSurfaceView.Renderer
     mScreen.detachAll();
     mScreen.attach(texture,mEffects,mesh);
 
+    DistortedEffects.enableEffect(EffectNames.SINK);
+
     try
       {
       Distorted.onCreate(mView.getContext());
diff --git a/src/main/java/org/distorted/examples/starwars/StarWarsRenderer.java b/src/main/java/org/distorted/examples/starwars/StarWarsRenderer.java
index f8a1e65..bbbb6f9 100644
--- a/src/main/java/org/distorted/examples/starwars/StarWarsRenderer.java
+++ b/src/main/java/org/distorted/examples/starwars/StarWarsRenderer.java
@@ -187,6 +187,9 @@ class StarWarsRenderer implements GLSurfaceView.Renderer, EffectListener
 
     setupBitmaps();
 
+    DistortedEffects.enableEffect(EffectNames.SMOOTH_ALPHA);
+    DistortedEffects.enableEffect(EffectNames.ALPHA);
+
     try
       {
       Distorted.onCreate(mView.getContext());
diff --git a/src/main/java/org/distorted/examples/wind/WindRenderer.java b/src/main/java/org/distorted/examples/wind/WindRenderer.java
index d808925..b1321e8 100644
--- a/src/main/java/org/distorted/examples/wind/WindRenderer.java
+++ b/src/main/java/org/distorted/examples/wind/WindRenderer.java
@@ -27,6 +27,7 @@ import android.opengl.GLSurfaceView;
 import org.distorted.examples.R;
 import org.distorted.library.Distorted;
 import org.distorted.library.DistortedScreen;
+import org.distorted.library.EffectNames;
 import org.distorted.library.MeshCubes;
 import org.distorted.library.DistortedEffects;
 import org.distorted.library.DistortedTexture;
@@ -128,6 +129,9 @@ class WindRenderer implements GLSurfaceView.Renderer
 
       mTexture.setTexture(bitmap);
 
+      DistortedEffects.enableEffect(EffectNames.DEFORM);
+      DistortedEffects.enableEffect(EffectNames.WAVE);
+
       try
         {
         Distorted.onCreate(mView.getContext());
