commit df5f8dd917a49324c85b2b0a615f9c1d058fad3a
Author: Leszek Koltunski <leszek@koltunski.pl>
Date:   Fri Jun 29 14:31:13 2018 +0100

    Correct a recently introduced bug.

diff --git a/src/main/java/org/distorted/library/main/DistortedOutputSurface.java b/src/main/java/org/distorted/library/main/DistortedOutputSurface.java
index 8aea469..a6daa13 100644
--- a/src/main/java/org/distorted/library/main/DistortedOutputSurface.java
+++ b/src/main/java/org/distorted/library/main/DistortedOutputSurface.java
@@ -71,7 +71,7 @@ public abstract class DistortedOutputSurface extends DistortedSurface implements
   private ArrayList<Job> mJobs = new ArrayList<>();
 
   // Global buffers used for postprocessing.
-  private static DistortedOutputSurface[] mBuffer = new DistortedOutputSurface[EffectQuality.LENGTH];
+  private static DistortedOutputSurface[] mBuffer=null;
 
   private float mFOV;
   float mDistance, mNear;
@@ -178,6 +178,7 @@ public abstract class DistortedOutputSurface extends DistortedSurface implements
 
   private static void createPostprocessingBuffers(int width, int height, float near)
     {
+    mBuffer = new DistortedOutputSurface[EffectQuality.LENGTH];
     float mipmap=1.0f;
 
     for (int j=0; j<EffectQuality.LENGTH; j++)
@@ -218,9 +219,14 @@ public abstract class DistortedOutputSurface extends DistortedSurface implements
 
   static synchronized void onDestroy()
     {
-    for(int j=0; j<EffectQuality.LENGTH; j++)
+    if( mBuffer!=null )
       {
-      mBuffer[j] = null;
+      for (int j = 0; j < EffectQuality.LENGTH; j++)
+        {
+        mBuffer[j] = null;
+        }
+
+      mBuffer = null;
       }
     }
 
@@ -402,7 +408,7 @@ public abstract class DistortedOutputSurface extends DistortedSurface implements
         }
       else
         {
-        if( mBuffer[0]==null ) createPostprocessingBuffers(mWidth,mHeight,mNear);
+        if( mBuffer==null ) createPostprocessingBuffers(mWidth,mHeight,mNear);
 
         if( lastBucket!=currBucket )
           {
