commit 47d838ca35117db1e83d5fde9a2559ccebf590a4
Author: Leszek Koltunski <leszek@distoretedandroid.org>
Date:   Fri Jan 6 17:20:23 2017 +0000

    NUM_POSTPROCESS corectly #defined now.

diff --git a/src/main/java/org/distorted/library/Distorted.java b/src/main/java/org/distorted/library/Distorted.java
index 7b2edcf..b182608 100644
--- a/src/main/java/org/distorted/library/Distorted.java
+++ b/src/main/java/org/distorted/library/Distorted.java
@@ -137,7 +137,23 @@ public class Distorted
     final InputStream mainVertexStream   = resources.openRawResource(R.raw.main_vertex_shader);
     final InputStream mainFragmentStream = resources.openRawResource(R.raw.main_fragment_shader);
 
-    DistortedProgram mainProgram = new DistortedProgram(mainVertexStream,mainFragmentStream);
+    String mainVertexHeader= ("#version 100\n#define NUM_VERTEX "  + DistortedEffects.getMaxVertex()+"\n");
+
+    for(EffectNames name: EffectNames.values() )
+      {
+      if( name.getType()== EffectTypes.VERTEX)
+        mainVertexHeader += ("#define "+name.name()+" "+name.ordinal()+"\n");
+      }
+
+    String mainFragmentHeader= ("#version 100\n#define NUM_FRAGMENT "  + DistortedEffects.getMaxFragment()+"\n");
+
+    for(EffectNames name: EffectNames.values() )
+      {
+      if( name.getType()== EffectTypes.FRAGMENT)
+        mainFragmentHeader += ("#define "+name.name()+" "+name.ordinal()+"\n");
+      }
+
+    DistortedProgram mainProgram = new DistortedProgram(mainVertexStream,mainFragmentStream, mainVertexHeader, mainFragmentHeader);
     mainProgramH = mainProgram.getProgramHandle();
     GLES20.glUseProgram(mainProgramH);
     mainProgram.bindAndEnableAttributes();
@@ -158,7 +174,15 @@ public class Distorted
     final InputStream postVertexStream   = resources.openRawResource(R.raw.post_vertex_shader);
     final InputStream postFragmentStream = resources.openRawResource(R.raw.post_fragment_shader);
 
-    DistortedProgram postProgram = new DistortedProgram(postVertexStream,postFragmentStream);
+    String postFragmentHeader= ("#version 100\n#define NUM_POSTPROCESS "  + DistortedEffects.getMaxPostprocess()+"\n");
+
+    for(EffectNames name: EffectNames.values() )
+      {
+      if( name.getType()== EffectTypes.POSTPROCESS)
+        postFragmentHeader += ("#define "+name.name()+" "+name.ordinal()+"\n");
+      }
+
+    DistortedProgram postProgram = new DistortedProgram(postVertexStream,postFragmentStream, "", postFragmentHeader);
     postProgramH = postProgram.getProgramHandle();
     GLES20.glUseProgram(postProgramH);
     postProgram.bindAndEnableAttributes();
diff --git a/src/main/java/org/distorted/library/program/DistortedProgram.java b/src/main/java/org/distorted/library/program/DistortedProgram.java
index 80c6fb3..49c0934 100644
--- a/src/main/java/org/distorted/library/program/DistortedProgram.java
+++ b/src/main/java/org/distorted/library/program/DistortedProgram.java
@@ -216,7 +216,7 @@ public class DistortedProgram
 
     if (shaderHandle != 0)
       {
-      GLES20.glShaderSource(shaderHandle, "#version 100 \n"+ generateShaderHeader(shaderType) + shaderSource);
+      GLES20.glShaderSource(shaderHandle, shaderSource);
       GLES20.glCompileShader(shaderHandle);
       final int[] compileStatus = new int[1];
       GLES20.glGetShaderiv(shaderHandle, GLES20.GL_COMPILE_STATUS, compileStatus, 0);
@@ -243,37 +243,6 @@ public class DistortedProgram
     return shaderHandle;
     }
 
-///////////////////////////////////////////////////////////////////////////////////////////////////
-
-  private static String generateShaderHeader(final int type)
-    {
-    String header="";
-
-    switch(type)
-      {
-      case GLES20.GL_VERTEX_SHADER  : header += ("#define NUM_VERTEX "  + DistortedEffects.getMaxVertex()+"\n");
-
-                                      for(EffectNames name: EffectNames.values() )
-                                        {
-                                        if( name.getType()== EffectTypes.VERTEX)
-                                        header += ("#define "+name.name()+" "+name.ordinal()+"\n");
-                                        }
-                                      break;
-      case GLES20.GL_FRAGMENT_SHADER: header += ("#define NUM_FRAGMENT "+ DistortedEffects.getMaxFragment()+"\n");
-
-                                      for(EffectNames name: EffectNames.values() )
-                                        {
-                                        if( name.getType()==EffectTypes.FRAGMENT)
-                                        header += ("#define "+name.name()+" "+name.ordinal()+"\n");
-                                        }
-                                      break;
-     }
-
-    //android.util.Log.d("program",""+header);
-
-    return header;
-    }
-
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 // PUBLIC API
 ///////////////////////////////////////////////////////////////////////////////////////////////////
@@ -291,7 +260,7 @@ public class DistortedProgram
    * @throws LinkingException
    */
 
-  public DistortedProgram(final InputStream vertex, final InputStream fragment)
+  public DistortedProgram(final InputStream vertex, final InputStream fragment, final String vertexHeader, final String fragmentHeader)
   throws FragmentCompilationException,VertexCompilationException,VertexUniformsException,FragmentUniformsException,LinkingException
     {
     mNumAttributes = 0;
@@ -301,8 +270,8 @@ public class DistortedProgram
 
     sanitizeMaxValues();
 
-    final int vertexShaderHandle   = compileShader(GLES20.GL_VERTEX_SHADER  , vertexShader  );
-    final int fragmentShaderHandle = compileShader(GLES20.GL_FRAGMENT_SHADER, fragmentShader);
+    final int vertexShaderHandle   = compileShader(GLES20.GL_VERTEX_SHADER  , vertexHeader   + vertexShader  );
+    final int fragmentShaderHandle = compileShader(GLES20.GL_FRAGMENT_SHADER, fragmentHeader + fragmentShader);
 
     mProgramHandle = createAndLinkProgram(vertexShaderHandle, fragmentShaderHandle, mAttributeName);
     }
diff --git a/src/main/res/raw/post_fragment_shader.glsl b/src/main/res/raw/post_fragment_shader.glsl
index dd84a33..44b6712 100644
--- a/src/main/res/raw/post_fragment_shader.glsl
+++ b/src/main/res/raw/post_fragment_shader.glsl
@@ -17,9 +17,6 @@
 // along with Distorted.  If not, see <http://www.gnu.org/licenses/>.                       //
 //////////////////////////////////////////////////////////////////////////////////////////////
 
-#define NUM_POSTPROCESS 3
-#define BLUR 0
-
 precision lowp float;
 
 varying vec2 v_TexCoordinate;
