commit 885b9cca08e797c2ce731e402e451f7bfae792e8
Author: leszek <leszek@koltunski.pl>
Date:   Wed Jun 21 00:51:46 2017 +0100

    Move all the knowledge about Vertex and Fragment effects to their respective classes.

diff --git a/src/main/java/org/distorted/examples/aroundtheworld/AroundTheWorldRenderer.java b/src/main/java/org/distorted/examples/aroundtheworld/AroundTheWorldRenderer.java
index 23ca2e8..b227b8b 100644
--- a/src/main/java/org/distorted/examples/aroundtheworld/AroundTheWorldRenderer.java
+++ b/src/main/java/org/distorted/examples/aroundtheworld/AroundTheWorldRenderer.java
@@ -26,8 +26,14 @@ import android.opengl.GLSurfaceView;
 import org.distorted.examples.R;
 import org.distorted.library.effect.EffectName;
 import org.distorted.library.effect.EffectType;
+import org.distorted.library.effect.FragmentEffectChroma;
+import org.distorted.library.effect.FragmentEffectContrast;
 import org.distorted.library.effect.MatrixEffectMove;
 import org.distorted.library.effect.MatrixEffectScale;
+import org.distorted.library.effect.VertexEffectDistort;
+import org.distorted.library.effect.VertexEffectPinch;
+import org.distorted.library.effect.VertexEffectSink;
+import org.distorted.library.effect.VertexEffectSwirl;
 import org.distorted.library.main.Distorted;
 import org.distorted.library.main.DistortedEffects;
 import org.distorted.library.main.DistortedScreen;
@@ -142,13 +148,12 @@ class AroundTheWorldRenderer implements GLSurfaceView.Renderer
       mScreen.detachAll();
       mScreen.attach(mTexture, mEffects, mMesh);
 
-      DistortedEffects.enableEffect(EffectName.DISTORT);
-      DistortedEffects.enableEffect(EffectName.SINK);
-      DistortedEffects.enableEffect(EffectName.PINCH);
-      DistortedEffects.enableEffect(EffectName.SWIRL);
-      DistortedEffects.enableEffect(EffectName.CHROMA);
-      DistortedEffects.enableEffect(EffectName.SMOOTH_CHROMA);
-      DistortedEffects.enableEffect(EffectName.CONTRAST);
+      VertexEffectDistort.enable();
+      VertexEffectSink.enable();
+      VertexEffectPinch.enable();
+      VertexEffectSwirl.enable();
+      FragmentEffectChroma.enable();
+      FragmentEffectContrast.enable();
 
       try
         {
diff --git a/src/main/java/org/distorted/examples/bean/BeanRenderer.java b/src/main/java/org/distorted/examples/bean/BeanRenderer.java
index 7f7223d..79cf570 100644
--- a/src/main/java/org/distorted/examples/bean/BeanRenderer.java
+++ b/src/main/java/org/distorted/examples/bean/BeanRenderer.java
@@ -156,7 +156,7 @@ class BeanRenderer implements GLSurfaceView.Renderer
      mScreen.detachAll();
      mScreen.attach(mTexture,mEffects,mMesh);
 
-     DistortedEffects.enableEffect(EffectName.DISTORT);
+     VertexEffectDistort.enable();
 
      try
        {
diff --git a/src/main/java/org/distorted/examples/bitmaptree/BitmapTreeRenderer.java b/src/main/java/org/distorted/examples/bitmaptree/BitmapTreeRenderer.java
index 13f562d..375179e 100644
--- a/src/main/java/org/distorted/examples/bitmaptree/BitmapTreeRenderer.java
+++ b/src/main/java/org/distorted/examples/bitmaptree/BitmapTreeRenderer.java
@@ -32,6 +32,7 @@ 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.VertexEffectDistort;
 import org.distorted.library.effect.VertexEffectSink;
 import org.distorted.library.main.DistortedEffects;
 import org.distorted.library.main.DistortedFramebuffer;
@@ -213,8 +214,8 @@ class BitmapTreeRenderer implements GLSurfaceView.Renderer
       VertexEffectSink sink = new VertexEffectSink(sinkDyn, new Static3D(gridWidth/2,gridHeight/2, 0));
       gridEffects.apply(sink);
 
-      DistortedEffects.enableEffect(EffectName.SINK);
-      DistortedEffects.enableEffect(EffectName.CHROMA);
+      VertexEffectSink.enable();
+      FragmentEffectChroma.enable();
 
       try
         {
diff --git a/src/main/java/org/distorted/examples/blur/BlurRenderer.java b/src/main/java/org/distorted/examples/blur/BlurRenderer.java
index 9e4fec7..24ba798 100644
--- a/src/main/java/org/distorted/examples/blur/BlurRenderer.java
+++ b/src/main/java/org/distorted/examples/blur/BlurRenderer.java
@@ -145,7 +145,7 @@ class BlurRenderer implements GLSurfaceView.Renderer
      mScreen.detachAll();
      mScreen.attach(new DistortedNode(mTexture,mEffects,mMesh));
 
-     DistortedEffects.enableEffect(EffectName.BLUR);
+     PostprocessEffectBlur.enable();
 
      try
        {
diff --git a/src/main/java/org/distorted/examples/catanddog/CatAndDogRenderer.java b/src/main/java/org/distorted/examples/catanddog/CatAndDogRenderer.java
index 3356e12..4b06d5f 100644
--- a/src/main/java/org/distorted/examples/catanddog/CatAndDogRenderer.java
+++ b/src/main/java/org/distorted/examples/catanddog/CatAndDogRenderer.java
@@ -146,8 +146,8 @@ class CatAndDogRenderer implements GLSurfaceView.Renderer
       mScreen.detachAll();
       mScreen.attach(mTexture,mEffects,mMesh);
 
-      DistortedEffects.enableEffect(EffectName.SMOOTH_CHROMA);
-      DistortedEffects.enableEffect(EffectName.ALPHA);
+      FragmentEffectChroma.enable();
+      FragmentEffectAlpha.enable();
 
       try
         {
diff --git a/src/main/java/org/distorted/examples/check/CheckRenderer.java b/src/main/java/org/distorted/examples/check/CheckRenderer.java
index 5f6bf8b..f6a2236 100644
--- a/src/main/java/org/distorted/examples/check/CheckRenderer.java
+++ b/src/main/java/org/distorted/examples/check/CheckRenderer.java
@@ -80,9 +80,9 @@ class CheckRenderer implements GLSurfaceView.Renderer
 
       DistortedEffects.setMax(EffectType.VERTEX  ,act.getMaxV());
       DistortedEffects.setMax(EffectType.FRAGMENT,act.getMaxF());
-      DistortedEffects.enableEffect(EffectName.SWIRL);
-      DistortedEffects.enableEffect(EffectName.DEFORM);
-      DistortedEffects.enableEffect(EffectName.CHROMA);
+      VertexEffectSwirl.enable();
+      VertexEffectDeform.enable();
+      FragmentEffectChroma.enable();
 
       mSwirl1 = new Static3D(0,0,0);
       mSwirl2 = new Static3D(0,0,0);
diff --git a/src/main/java/org/distorted/examples/deform/DeformRenderer.java b/src/main/java/org/distorted/examples/deform/DeformRenderer.java
index 1d44421..a58167a 100644
--- a/src/main/java/org/distorted/examples/deform/DeformRenderer.java
+++ b/src/main/java/org/distorted/examples/deform/DeformRenderer.java
@@ -214,8 +214,8 @@ class DeformRenderer implements GLSurfaceView.Renderer
     
    public void onSurfaceCreated(GL10 glUnused, EGLConfig config)
      {
-     DistortedEffects.enableEffect(EffectName.DISTORT);
-     DistortedEffects.enableEffect(EffectName.DEFORM);
+     VertexEffectDistort.enable();
+     VertexEffectDeform.enable();
 
      try
        {
diff --git a/src/main/java/org/distorted/examples/differentbitmaps/DifferentBitmapsRenderer.java b/src/main/java/org/distorted/examples/differentbitmaps/DifferentBitmapsRenderer.java
index 563e923..629fd63 100644
--- a/src/main/java/org/distorted/examples/differentbitmaps/DifferentBitmapsRenderer.java
+++ b/src/main/java/org/distorted/examples/differentbitmaps/DifferentBitmapsRenderer.java
@@ -192,8 +192,8 @@ class DifferentBitmapsRenderer implements GLSurfaceView.Renderer
      mScreen.detachAll();
      for(int i=NUM-1; i>=0; i--) mScreen.attach(mTexture[i], mEffects[i], mMesh);
 
-     DistortedEffects.enableEffect(EffectName.SINK);
-     DistortedEffects.enableEffect(EffectName.DISTORT);
+     VertexEffectSink.enable();
+     VertexEffectDistort.enable();
 
      try
        {
diff --git a/src/main/java/org/distorted/examples/differenteffects/DifferentEffectsRenderer.java b/src/main/java/org/distorted/examples/differenteffects/DifferentEffectsRenderer.java
index 1592001..4e52320 100644
--- a/src/main/java/org/distorted/examples/differenteffects/DifferentEffectsRenderer.java
+++ b/src/main/java/org/distorted/examples/differenteffects/DifferentEffectsRenderer.java
@@ -190,9 +190,9 @@ class DifferentEffectsRenderer implements GLSurfaceView.Renderer
      mScreen.detachAll();
      for(int i=NUM-1; i>=0; i--) mScreen.attach(mTexture, mEffects[i], mMesh);
 
-     DistortedEffects.enableEffect(EffectName.SINK);
-     DistortedEffects.enableEffect(EffectName.DISTORT);
-     DistortedEffects.enableEffect(EffectName.CHROMA);
+     VertexEffectSink.enable();
+     VertexEffectDistort.enable();
+     FragmentEffectChroma.enable();
 
      try
        {
diff --git a/src/main/java/org/distorted/examples/effectqueue/EffectQueueRenderer.java b/src/main/java/org/distorted/examples/effectqueue/EffectQueueRenderer.java
index 8600c6b..2c747cf 100644
--- a/src/main/java/org/distorted/examples/effectqueue/EffectQueueRenderer.java
+++ b/src/main/java/org/distorted/examples/effectqueue/EffectQueueRenderer.java
@@ -29,7 +29,12 @@ import android.graphics.Paint.Style;
 import android.opengl.GLSurfaceView;
 
 import org.distorted.library.effect.EffectName;
+import org.distorted.library.effect.FragmentEffectAlpha;
+import org.distorted.library.effect.FragmentEffectChroma;
+import org.distorted.library.effect.FragmentEffectSaturation;
 import org.distorted.library.effect.MatrixEffectScale;
+import org.distorted.library.effect.VertexEffectDistort;
+import org.distorted.library.effect.VertexEffectSink;
 import org.distorted.library.main.DistortedEffects;
 import org.distorted.library.main.DistortedScreen;
 import org.distorted.library.main.MeshFlat;
@@ -110,11 +115,11 @@ class EffectQueueRenderer implements GLSurfaceView.Renderer, EffectListener
     mScreen.detachAll();
     mScreen.attach(mTexture,mEffects,mMesh);
 
-    DistortedEffects.enableEffect(EffectName.DISTORT);
-    DistortedEffects.enableEffect(EffectName.SINK);
-    DistortedEffects.enableEffect(EffectName.SMOOTH_ALPHA);
-    DistortedEffects.enableEffect(EffectName.SATURATION);
-    DistortedEffects.enableEffect(EffectName.SMOOTH_CHROMA);
+    VertexEffectDistort.enable();
+    VertexEffectSink.enable();
+    FragmentEffectAlpha.enable();
+    FragmentEffectChroma.enable();
+    FragmentEffectSaturation.enable();
 
     try
       {
diff --git a/src/main/java/org/distorted/examples/effects3d/Effects3DRenderer.java b/src/main/java/org/distorted/examples/effects3d/Effects3DRenderer.java
index 5fb9b99..7e698a6 100644
--- a/src/main/java/org/distorted/examples/effects3d/Effects3DRenderer.java
+++ b/src/main/java/org/distorted/examples/effects3d/Effects3DRenderer.java
@@ -26,9 +26,20 @@ import android.opengl.GLSurfaceView;
 import org.distorted.examples.R;
 import org.distorted.library.effect.EffectName;
 import org.distorted.library.effect.EffectType;
+import org.distorted.library.effect.FragmentEffectAlpha;
+import org.distorted.library.effect.FragmentEffectBrightness;
+import org.distorted.library.effect.FragmentEffectChroma;
+import org.distorted.library.effect.FragmentEffectContrast;
+import org.distorted.library.effect.FragmentEffectSaturation;
 import org.distorted.library.effect.MatrixEffectMove;
 import org.distorted.library.effect.MatrixEffectQuaternion;
 import org.distorted.library.effect.MatrixEffectScale;
+import org.distorted.library.effect.VertexEffectDeform;
+import org.distorted.library.effect.VertexEffectDistort;
+import org.distorted.library.effect.VertexEffectPinch;
+import org.distorted.library.effect.VertexEffectSink;
+import org.distorted.library.effect.VertexEffectSwirl;
+import org.distorted.library.effect.VertexEffectWave;
 import org.distorted.library.main.Distorted;
 import org.distorted.library.main.DistortedEffects;
 import org.distorted.library.main.DistortedNode;
@@ -272,17 +283,18 @@ class Effects3DRenderer implements GLSurfaceView.Renderer
       mCenterTexture.setTexture(bitmapC);
       mRegionTexture.setTexture(bitmapR);
 
-      EffectType type;
-
-      for( EffectName name : EffectName.values() )
-        {
-        type = name.getType();
-
-        if( type== EffectType.VERTEX || type==EffectType.FRAGMENT )
-          {
-          DistortedEffects.enableEffect(name);
-          }
-        }
+      VertexEffectDeform.enable();
+      VertexEffectDistort.enable();
+      VertexEffectPinch.enable();
+      VertexEffectSink.enable();
+      VertexEffectSwirl.enable();
+      VertexEffectWave.enable();
+
+      FragmentEffectAlpha.enable();
+      FragmentEffectBrightness.enable();
+      FragmentEffectChroma.enable();
+      FragmentEffectContrast.enable();
+      FragmentEffectSaturation.enable();
 
       try
         {
diff --git a/src/main/java/org/distorted/examples/flag/FlagRenderer.java b/src/main/java/org/distorted/examples/flag/FlagRenderer.java
index 706aa73..508f1d1 100644
--- a/src/main/java/org/distorted/examples/flag/FlagRenderer.java
+++ b/src/main/java/org/distorted/examples/flag/FlagRenderer.java
@@ -183,7 +183,7 @@ class FlagRenderer implements GLSurfaceView.Renderer
       
       mTexture.setTexture(bitmap);
 
-      DistortedEffects.enableEffect(EffectName.WAVE);
+      VertexEffectWave.enable();
 
       try
         {
diff --git a/src/main/java/org/distorted/examples/girl/GirlRenderer.java b/src/main/java/org/distorted/examples/girl/GirlRenderer.java
index 7b37141..aebd12d 100644
--- a/src/main/java/org/distorted/examples/girl/GirlRenderer.java
+++ b/src/main/java/org/distorted/examples/girl/GirlRenderer.java
@@ -219,9 +219,9 @@ class GirlRenderer implements GLSurfaceView.Renderer
      mScreen.detachAll();
      mScreen.attach(mTexture,mEffects,mMesh);
 
-     DistortedEffects.enableEffect(EffectName.DISTORT);
-     DistortedEffects.enableEffect(EffectName.SINK);
-     DistortedEffects.enableEffect(EffectName.SWIRL);
+     VertexEffectDistort.enable();
+     VertexEffectSink.enable();
+     VertexEffectSwirl.enable();
 
      try
        {
diff --git a/src/main/java/org/distorted/examples/glow/GlowRenderer.java b/src/main/java/org/distorted/examples/glow/GlowRenderer.java
index 32ca149..dbc07cd 100644
--- a/src/main/java/org/distorted/examples/glow/GlowRenderer.java
+++ b/src/main/java/org/distorted/examples/glow/GlowRenderer.java
@@ -206,8 +206,8 @@ class GlowRenderer implements GLSurfaceView.Renderer,EffectListener
       
      mLeaf.setTexture(leaf);
 
-     DistortedEffects.enableEffect(EffectName.CHROMA);
-     DistortedEffects.enableEffect(EffectName.GLOW);
+     FragmentEffectChroma.enable();
+     PostprocessEffectGlow.enable();
 
      try
        {
diff --git a/src/main/java/org/distorted/examples/listener/ListenerRenderer.java b/src/main/java/org/distorted/examples/listener/ListenerRenderer.java
index 0e19c78..8712f87 100644
--- a/src/main/java/org/distorted/examples/listener/ListenerRenderer.java
+++ b/src/main/java/org/distorted/examples/listener/ListenerRenderer.java
@@ -173,7 +173,7 @@ class ListenerRenderer implements GLSurfaceView.Renderer,EffectListener
 
      for(int i=0; i<NUM_BUBBLES; i++) randomizeNewBubble();
 
-     DistortedEffects.enableEffect(EffectName.DISTORT);
+     VertexEffectDistort.enable();
 
      try
        {
diff --git a/src/main/java/org/distorted/examples/mirror/MirrorRenderer.java b/src/main/java/org/distorted/examples/mirror/MirrorRenderer.java
index ea7ef6b..2d71e8f 100644
--- a/src/main/java/org/distorted/examples/mirror/MirrorRenderer.java
+++ b/src/main/java/org/distorted/examples/mirror/MirrorRenderer.java
@@ -195,7 +195,7 @@ class MirrorRenderer implements GLSurfaceView.Renderer
       mTextureMirror.setTexture(bitmapM);
       mTextureHead.setTexture(bitmapH);
 
-      DistortedEffects.enableEffect(EffectName.BRIGHTNESS);
+      FragmentEffectBrightness.enable();
 
       try
         {
diff --git a/src/main/java/org/distorted/examples/monalisa/MonaLisaRenderer.java b/src/main/java/org/distorted/examples/monalisa/MonaLisaRenderer.java
index 021da39..6663f7e 100644
--- a/src/main/java/org/distorted/examples/monalisa/MonaLisaRenderer.java
+++ b/src/main/java/org/distorted/examples/monalisa/MonaLisaRenderer.java
@@ -156,7 +156,7 @@ class MonaLisaRenderer implements GLSurfaceView.Renderer
       mScreen.detachAll();
       mScreen.attach(mTexture,mEffects,mMesh);
 
-      DistortedEffects.enableEffect(EffectName.DISTORT);
+      VertexEffectDistort.enable();
 
       try
         {
diff --git a/src/main/java/org/distorted/examples/movingeffects/MovingEffectsRenderer.java b/src/main/java/org/distorted/examples/movingeffects/MovingEffectsRenderer.java
index a4ede66..a57cacd 100644
--- a/src/main/java/org/distorted/examples/movingeffects/MovingEffectsRenderer.java
+++ b/src/main/java/org/distorted/examples/movingeffects/MovingEffectsRenderer.java
@@ -29,6 +29,11 @@ import android.graphics.Paint.Style;
 import android.opengl.GLSurfaceView;
 
 import org.distorted.library.effect.EffectName;
+import org.distorted.library.effect.FragmentEffectAlpha;
+import org.distorted.library.effect.FragmentEffectChroma;
+import org.distorted.library.effect.VertexEffectDistort;
+import org.distorted.library.effect.VertexEffectSink;
+import org.distorted.library.effect.VertexEffectSwirl;
 import org.distorted.library.main.DistortedScreen;
 import org.distorted.library.main.DistortedTexture;
 import org.distorted.library.main.DistortedEffects;
@@ -109,11 +114,11 @@ class MovingEffectsRenderer implements GLSurfaceView.Renderer
 
    public void onSurfaceCreated(GL10 glUnused, EGLConfig config) 
      {
-     DistortedEffects.enableEffect(EffectName.SWIRL);
-     DistortedEffects.enableEffect(EffectName.SMOOTH_ALPHA);
-     DistortedEffects.enableEffect(EffectName.SMOOTH_CHROMA);
-     DistortedEffects.enableEffect(EffectName.DISTORT);
-     DistortedEffects.enableEffect(EffectName.SINK);
+     VertexEffectSwirl.enable();
+     VertexEffectDistort.enable();
+     VertexEffectSink.enable();
+     FragmentEffectChroma.enable();
+     FragmentEffectAlpha.enable();
 
      try
        {
diff --git a/src/main/java/org/distorted/examples/multiblur/MultiblurRenderer.java b/src/main/java/org/distorted/examples/multiblur/MultiblurRenderer.java
index 8f63c70..3bc8afc 100644
--- a/src/main/java/org/distorted/examples/multiblur/MultiblurRenderer.java
+++ b/src/main/java/org/distorted/examples/multiblur/MultiblurRenderer.java
@@ -201,7 +201,7 @@ class MultiblurRenderer implements GLSurfaceView.Renderer
       mTex1.setTexture(bitmap1);
       mTex2.setTexture(bitmap2);
 
-      DistortedEffects.enableEffect(EffectName.BLUR);
+      PostprocessEffectBlur.enable();
 
       try
         {
diff --git a/src/main/java/org/distorted/examples/olimpic/OlimpicRenderer.java b/src/main/java/org/distorted/examples/olimpic/OlimpicRenderer.java
index ec95c30..8974bcc 100644
--- a/src/main/java/org/distorted/examples/olimpic/OlimpicRenderer.java
+++ b/src/main/java/org/distorted/examples/olimpic/OlimpicRenderer.java
@@ -210,7 +210,7 @@ class OlimpicRenderer implements GLSurfaceView.Renderer
       
      mLeaf.setTexture(leaf);
 
-     DistortedEffects.enableEffect(EffectName.CHROMA);
+     FragmentEffectChroma.enable();
 
      try
        {
diff --git a/src/main/java/org/distorted/examples/plainmonalisa/RenderThread.java b/src/main/java/org/distorted/examples/plainmonalisa/RenderThread.java
index 3fc02a9..699d6e8 100644
--- a/src/main/java/org/distorted/examples/plainmonalisa/RenderThread.java
+++ b/src/main/java/org/distorted/examples/plainmonalisa/RenderThread.java
@@ -271,7 +271,7 @@ class RenderThread extends Thread
     mScreen.detachAll();
     mScreen.attach(mTexture,mEffects,mMesh);
 
-    DistortedEffects.enableEffect(EffectName.DISTORT);
+    VertexEffectDistort.enable();
 
     try
       {
diff --git a/src/main/java/org/distorted/examples/projection/ProjectionRenderer.java b/src/main/java/org/distorted/examples/projection/ProjectionRenderer.java
index 3bcf257..382302f 100644
--- a/src/main/java/org/distorted/examples/projection/ProjectionRenderer.java
+++ b/src/main/java/org/distorted/examples/projection/ProjectionRenderer.java
@@ -152,7 +152,7 @@ class ProjectionRenderer implements GLSurfaceView.Renderer
     
    public void onSurfaceCreated(GL10 glUnused, EGLConfig config) 
       {
-      DistortedEffects.enableEffect(EffectName.DISTORT);
+      VertexEffectDistort.enable();
 
       try
         {
diff --git a/src/main/java/org/distorted/examples/save/SaveRenderer.java b/src/main/java/org/distorted/examples/save/SaveRenderer.java
index 0488ca4..586ceef 100644
--- a/src/main/java/org/distorted/examples/save/SaveRenderer.java
+++ b/src/main/java/org/distorted/examples/save/SaveRenderer.java
@@ -257,7 +257,7 @@ class SaveRenderer implements GLSurfaceView.Renderer
     mScreen.detachAll();
     mScreen.attach(mTexture,mEffects,mMesh);
 
-    DistortedEffects.enableEffect(EffectName.SINK);
+    VertexEffectSink.enable();
 
     try
       {
diff --git a/src/main/java/org/distorted/examples/sink/SinkRenderer.java b/src/main/java/org/distorted/examples/sink/SinkRenderer.java
index 5520462..b556caf 100644
--- a/src/main/java/org/distorted/examples/sink/SinkRenderer.java
+++ b/src/main/java/org/distorted/examples/sink/SinkRenderer.java
@@ -137,7 +137,7 @@ class SinkRenderer implements GLSurfaceView.Renderer
     mScreen.detachAll();
     mScreen.attach(mTexture,mEffects,mMesh);
 
-    DistortedEffects.enableEffect(EffectName.SINK);
+    VertexEffectSink.enable();
 
     try
       {
diff --git a/src/main/java/org/distorted/examples/starwars/StarWarsRenderer.java b/src/main/java/org/distorted/examples/starwars/StarWarsRenderer.java
index 823768f..47cb5b0 100644
--- a/src/main/java/org/distorted/examples/starwars/StarWarsRenderer.java
+++ b/src/main/java/org/distorted/examples/starwars/StarWarsRenderer.java
@@ -188,8 +188,7 @@ class StarWarsRenderer implements GLSurfaceView.Renderer, EffectListener
     {
     setupBitmaps();
 
-    DistortedEffects.enableEffect(EffectName.SMOOTH_ALPHA);
-    DistortedEffects.enableEffect(EffectName.ALPHA);
+    FragmentEffectAlpha.enable();
 
     try
       {
diff --git a/src/main/java/org/distorted/examples/stencil/StencilRenderer.java b/src/main/java/org/distorted/examples/stencil/StencilRenderer.java
index a9a5a67..7226f3e 100644
--- a/src/main/java/org/distorted/examples/stencil/StencilRenderer.java
+++ b/src/main/java/org/distorted/examples/stencil/StencilRenderer.java
@@ -261,7 +261,7 @@ class StencilRenderer implements GLSurfaceView.Renderer
       mCubeTex.setTexture(bitmap);
       mFloorTex.setColor(0xff000000);  // ARGB
 
-      DistortedEffects.enableEffect(EffectName.BRIGHTNESS);
+      FragmentEffectBrightness.enable();
 
       try
         {
diff --git a/src/main/java/org/distorted/examples/wind/WindRenderer.java b/src/main/java/org/distorted/examples/wind/WindRenderer.java
index 7cc9312..38a3b01 100644
--- a/src/main/java/org/distorted/examples/wind/WindRenderer.java
+++ b/src/main/java/org/distorted/examples/wind/WindRenderer.java
@@ -28,6 +28,8 @@ import org.distorted.library.effect.EffectName;
 import org.distorted.library.effect.MatrixEffectMove;
 import org.distorted.library.effect.MatrixEffectRotate;
 import org.distorted.library.effect.MatrixEffectScale;
+import org.distorted.library.effect.VertexEffectDeform;
+import org.distorted.library.effect.VertexEffectWave;
 import org.distorted.library.main.Distorted;
 import org.distorted.library.main.DistortedScreen;
 import org.distorted.library.main.MeshCubes;
@@ -131,8 +133,8 @@ class WindRenderer implements GLSurfaceView.Renderer
 
       mTexture.setTexture(bitmap);
 
-      DistortedEffects.enableEffect(EffectName.DEFORM);
-      DistortedEffects.enableEffect(EffectName.WAVE);
+      VertexEffectDeform.enable();
+      VertexEffectWave.enable();
 
       try
         {
