commit 6ddda2125557087d20bc907e43e48b228b5e60c8
Author: Leszek Koltunski <leszek@distorted.org>
Date:   Mon Aug 29 22:34:30 2016 +0100

    Adjustments for EffectQueueVertex.postprocess()

diff --git a/src/main/java/org/distorted/library/DistortedObject.java b/src/main/java/org/distorted/library/DistortedObject.java
index e93512b..e71ccf4 100644
--- a/src/main/java/org/distorted/library/DistortedObject.java
+++ b/src/main/java/org/distorted/library/DistortedObject.java
@@ -164,7 +164,6 @@ public abstract class DistortedObject
     mM.send(mViewMatrix, dp);
       
     mV.compute(currTime);
-    mV.postprocess();
     mV.send();
         
     mF.compute(currTime);
diff --git a/src/main/java/org/distorted/library/EffectQueueVertex.java b/src/main/java/org/distorted/library/EffectQueueVertex.java
index 083c7eb..1e101bc 100644
--- a/src/main/java/org/distorted/library/EffectQueueVertex.java
+++ b/src/main/java/org/distorted/library/EffectQueueVertex.java
@@ -71,23 +71,30 @@ class EffectQueueVertex extends EffectQueue
    
     for(int i=0; i<mNumEffects; i++)
       {
-      if( mInter[0][i]!=null && mInter[0][i].interpolateMain(mUniforms ,NUM_UNIFORMS*i, mCurrentDuration[i], step) )
+      if( mInter[0][i]!=null )
         {
-        for(int j=0; j<mNumListeners; j++)
-          EffectMessageSender.newMessage( mListeners.elementAt(j),
-                                          EffectMessage.EFFECT_FINISHED,
-                                         (mID[i]<<EffectTypes.LENGTH)+EffectTypes.VERTEX.type,
-                                          mName[i],
-                                          mBitmapID,
-                                          null);
-
-        if( EffectNames.isUnity(mName[i], mUniforms, NUM_UNIFORMS*i) )
+        if( mInter[0][i].interpolateMain(mUniforms ,NUM_UNIFORMS*i, mCurrentDuration[i], step) )
           {
-          remove(i);
-          i--;
-          continue;
+          for(int j=0; j<mNumListeners; j++)
+            EffectMessageSender.newMessage( mListeners.elementAt(j),
+                                            EffectMessage.EFFECT_FINISHED,
+                                           (mID[i]<<EffectTypes.LENGTH)+EffectTypes.VERTEX.type,
+                                            mName[i],
+                                            mBitmapID,
+                                            null);
+
+          if( EffectNames.isUnity(mName[i], mUniforms, NUM_UNIFORMS*i) )
+            {
+            remove(i);
+            i--;
+            continue;
+            }
+          else mInter[0][i] = null;
+          }
+        else
+          {
+          postprocess(i);
           }
-        else mInter[0][i] = null;
         }
 
       if( mInter[1][i]!=null )  // region
@@ -153,24 +160,21 @@ class EffectQueueVertex extends EffectQueue
 // 2) in case of swirl, pre-compute the sine and cosine of its rotation angle
 // 3) likewise in case of wave
   
-  void postprocess()
+  void postprocess(int effect)
     {
     double d;  
-     
-    for(int i=0; i<mNumEffects; i++)
-      {      
-      if( mName[i]==EffectNames.SWIRL.ordinal() )
-        {
-        d = Math.PI*mUniforms[NUM_UNIFORMS*i]/180;  
-        mUniforms[NUM_UNIFORMS*i+4] = (float)Math.sin(d);
-        mUniforms[NUM_UNIFORMS*i+5] = (float)Math.cos(d);
-        }
-      if( mName[i]==EffectNames.WAVE.ordinal() )
-        {
-        d = Math.PI*mUniforms[NUM_UNIFORMS*i+1]/180;
-        mUniforms[NUM_UNIFORMS*i+4] = (float)Math.sin(d);
-        mUniforms[NUM_UNIFORMS*i+5] = (float)Math.cos(d);
-        }
+
+    if( mName[effect]==EffectNames.SWIRL.ordinal() )
+      {
+      d = Math.PI*mUniforms[NUM_UNIFORMS*effect]/180;
+      mUniforms[NUM_UNIFORMS*effect+4] = (float)Math.sin(d);
+      mUniforms[NUM_UNIFORMS*effect+5] = (float)Math.cos(d);
+      }
+    if( mName[effect]==EffectNames.WAVE.ordinal() )
+      {
+      d = Math.PI*mUniforms[NUM_UNIFORMS*effect+1]/180;
+      mUniforms[NUM_UNIFORMS*effect+4] = (float)Math.sin(d);
+      mUniforms[NUM_UNIFORMS*effect+5] = (float)Math.cos(d);
       }
     }
   
@@ -312,7 +316,11 @@ class EffectQueueVertex extends EffectQueue
       mUniforms[NUM_UNIFORMS*mNumEffects+7] =-((Static2D)center).getY()+mObjHalfY;
       }
 
-    return addBase(eln);
+    long ret= addBase(eln);
+
+    postprocess(mNumEffects-1); //addBase just incremented mNumEffects
+
+    return ret;
     }
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
diff --git a/src/main/res/raw/main_vertex_shader.glsl b/src/main/res/raw/main_vertex_shader.glsl
index 4c7ee93..8316fc7 100644
--- a/src/main/res/raw/main_vertex_shader.glsl
+++ b/src/main/res/raw/main_vertex_shader.glsl
@@ -360,7 +360,7 @@ void wave(in int effect, inout vec4 v)
   float d = dot( vec2(-ps.y,-ps.x),sincos );
   float num = length==0.0 ? 0.0 : d / length;
 
-  v.xy += (sin(1.57*num)*amplitude*deg*sincos);
+  v.xy += (sin(1.578*num)*amplitude*deg*sincos);
   }
 
 #endif
