commit 11fb6ce0fac2cd28fe2f4324bac30a31bbbe6b6a
Author: Leszek Koltunski <leszek@distorted.org>
Date:   Sun Jan 15 23:56:51 2017 +0000

    Correct a bug with Postprocessing Shortcut.

diff --git a/src/main/java/org/distorted/library/DistortedEffects.java b/src/main/java/org/distorted/library/DistortedEffects.java
index 9bf1f58..8b036f3 100644
--- a/src/main/java/org/distorted/library/DistortedEffects.java
+++ b/src/main/java/org/distorted/library/DistortedEffects.java
@@ -146,7 +146,12 @@ public class DistortedEffects
       }
     else
       {
-      if( mV.mNumEffects>0 || mF.mNumEffects>0 )
+      if( mV.mNumEffects==0 && mF.mNumEffects==0 && mesh.canUsePostprocessingShortcut() )
+        {
+        mM.constructMatrices(df,halfInputW,halfInputH);
+        mP.render(2*halfInputW, 2*halfInputH, mM.getMVP(), df);
+        }
+      else
         {
         mProgram.useProgram();
         mBufferFBO.resizeFast(df.mWidth, df.mHeight);
@@ -168,11 +173,6 @@ public class DistortedEffects
         mBufferFBO.setAsInput();
         mP.render(df.mWidth, df.mHeight, mMVPMatrix, df);
         }
-      else
-        {
-        mM.constructMatrices(df,halfInputW,halfInputH);
-        mP.render(2*halfInputW, 2*halfInputH, mM.getMVP(), df);
-        }
       }
     }
 
diff --git a/src/main/java/org/distorted/library/EffectQueuePostprocess.java b/src/main/java/org/distorted/library/EffectQueuePostprocess.java
index 13ab397..b347a74 100644
--- a/src/main/java/org/distorted/library/EffectQueuePostprocess.java
+++ b/src/main/java/org/distorted/library/EffectQueuePostprocess.java
@@ -151,6 +151,8 @@ class EffectQueuePostprocess extends EffectQueue
     }
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
+// w,h - width and height of hte input texture. MVP - Model-View-Projection matrix to apply to the
+// texture; df - output FBO.
 
   synchronized void render(float w, float h, float[] mvp, DistortedFramebuffer df)
     {
diff --git a/src/main/java/org/distorted/library/MeshCubes.java b/src/main/java/org/distorted/library/MeshCubes.java
index e3fbaec..11da535 100644
--- a/src/main/java/org/distorted/library/MeshCubes.java
+++ b/src/main/java/org/distorted/library/MeshCubes.java
@@ -740,6 +740,13 @@ public class MeshCubes extends MeshObject
      mMeshTexture.put(textureData).position(0);
      }
 
+///////////////////////////////////////////////////////////////////////////////////////////////////
+
+   boolean canUsePostprocessingShortcut()
+      {
+      return false;
+      }
+
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 // PUBLIC API
 ///////////////////////////////////////////////////////////////////////////////////////////////////
diff --git a/src/main/java/org/distorted/library/MeshFlat.java b/src/main/java/org/distorted/library/MeshFlat.java
index ddf83cc..e0ed22c 100644
--- a/src/main/java/org/distorted/library/MeshFlat.java
+++ b/src/main/java/org/distorted/library/MeshFlat.java
@@ -156,6 +156,14 @@ public class MeshFlat extends MeshObject
      return ret;
      }
 */
+
+///////////////////////////////////////////////////////////////////////////////////////////////////
+
+   boolean canUsePostprocessingShortcut()
+      {
+      return true;
+      }
+
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 // PUBLIC API
 ///////////////////////////////////////////////////////////////////////////////////////////////////
diff --git a/src/main/java/org/distorted/library/MeshObject.java b/src/main/java/org/distorted/library/MeshObject.java
index fa0423d..d33dd46 100644
--- a/src/main/java/org/distorted/library/MeshObject.java
+++ b/src/main/java/org/distorted/library/MeshObject.java
@@ -48,4 +48,8 @@ public abstract class MeshObject
      {
      zFactor = factor;
      }
+
+///////////////////////////////////////////////////////////////////////////////////////////////////
+
+   abstract boolean canUsePostprocessingShortcut();
    }
