commit e8e549722104306db9557fbfcb3eec57699a5af2
Author: Leszek Koltunski <leszek@koltunski.pl>
Date:   Sat Feb 29 14:00:24 2020 +0000

    Fixes for the merge.

diff --git a/src/main/java/org/distorted/examples/deform/DeformRenderer.java b/src/main/java/org/distorted/examples/deform/DeformRenderer.java
index 4e0bfb3..dfbec3c 100644
--- a/src/main/java/org/distorted/examples/deform/DeformRenderer.java
+++ b/src/main/java/org/distorted/examples/deform/DeformRenderer.java
@@ -246,14 +246,17 @@ class DeformRenderer implements GLSurfaceView.Renderer, EffectListener
        case DISTORT: vDistort[0].set(0,0,0);
                      mEffects.apply(mMovingDistort);
                      mLastEffect = mMovingDistort.getID();
+                     mTouchPoint.set(xt,yt,0);
                      break;
        case DEFORM : vDeform[0].set(0,0,0);
                      mEffects.apply(mMovingDeform);
                      mLastEffect = mMovingDeform.getID();
+                     mTouchPoint.set(xt,yt,0);
                      break;
        case SHEAR  : vShear[0].set(0,0,0);
                      mEffects.apply(mMovingShear);
                      mLastEffect = mMovingShear.getID();
+                     mTouchPoint.set(xt-textureWidth/2,yt-textureHeight/2,0);
                      break;
        }
      }
diff --git a/src/main/java/org/distorted/examples/generic/Effects3DActivity.java b/src/main/java/org/distorted/examples/generic/Effects3DActivity.java
deleted file mode 100644
index 22fa4db..0000000
--- a/src/main/java/org/distorted/examples/generic/Effects3DActivity.java
+++ /dev/null
@@ -1,328 +0,0 @@
-///////////////////////////////////////////////////////////////////////////////////////////////////
-// Copyright 2016 Leszek Koltunski                                                               //
-//                                                                                               //
-// This file is part of Distorted.                                                               //
-//                                                                                               //
-// Distorted is free software: you can redistribute it and/or modify                             //
-// it under the terms of the GNU General Public License as published by                          //
-// the Free Software Foundation, either version 2 of the License, or                             //
-// (at your option) any later version.                                                           //
-//                                                                                               //
-// Distorted is distributed in the hope that it will be useful,                                  //
-// but WITHOUT ANY WARRANTY; without even the implied warranty of                                //
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the                                 //
-// GNU General Public License for more details.                                                  //
-//                                                                                               //
-// You should have received a copy of the GNU General Public License                             //
-// along with Distorted.  If not, see <http://www.gnu.org/licenses/>.                            //
-///////////////////////////////////////////////////////////////////////////////////////////////////
-
-package org.distorted.examples.generic;
-
-import android.app.Activity;
-import android.content.Intent;
-import android.os.Bundle;
-import android.view.Gravity;
-import android.view.View;
-import android.widget.AdapterView;
-import android.widget.ArrayAdapter;
-import android.widget.Button;
-import android.widget.LinearLayout;
-import android.widget.NumberPicker;
-import android.widget.Spinner;
-import android.widget.TableRow;
-
-import org.distorted.examples.R;
-
-///////////////////////////////////////////////////////////////////////////////////////////////////
-
-public class Effects3DActivity extends Activity
-                               implements View.OnClickListener, AdapterView.OnItemSelectedListener
-  {
-  private static final int COLOR_OFF = 0xffffe81f;
-  private static final int COLOR_ON  = 0xff0000ff;
-  private static final int COLOR_INAC= 0xff999999;
-
-  private int mNumCols = 1;
-  private int mNumRows = 1;
-  private int mNumSlic = 1;
-  private boolean mGridInitialized;
-  private NumberPicker mColsPicker, mRowsPicker, mSlicPicker;
-  private boolean[] mShape;
-  private int mObjectType;
-  private int mBitmapID;
-  private LinearLayout mLay;
-
-///////////////////////////////////////////////////////////////////////////////////////////////////
-
-  @Override
-  protected void onCreate(Bundle savedState)
-    {
-    super.onCreate(savedState);
-
-    setContentView(R.layout.objectpickerlayout);
-
-    mLay = findViewById(R.id.objectpicker_buttongrid);
-
-    mColsPicker = findViewById(R.id.objectpicker_cols);
-    mRowsPicker = findViewById(R.id.objectpicker_rows);
-    mSlicPicker = findViewById(R.id.objectpicker_slices);
-
-    mColsPicker.setMaxValue(40);
-    mColsPicker.setMinValue( 1);
-    mRowsPicker.setMaxValue(40);
-    mRowsPicker.setMinValue( 1);
-    mSlicPicker.setMaxValue(40);
-    mSlicPicker.setMinValue( 0);
-
-    mColsPicker.setOnValueChangedListener(new NumberPicker.OnValueChangeListener()
-         {
-         @Override
-         public void onValueChange(NumberPicker picker, int oldVal, int newVal)
-           {
-           setGrid();
-           }
-         });
-
-    mRowsPicker.setOnValueChangedListener(new NumberPicker.OnValueChangeListener()
-         {
-         @Override
-         public void onValueChange(NumberPicker picker, int oldVal, int newVal)
-           {
-           setGrid();
-           }
-         });
-
-    mSlicPicker.setOnValueChangedListener(new NumberPicker.OnValueChangeListener()
-         {
-         @Override
-         public void onValueChange(NumberPicker picker, int oldVal, int newVal)
-           {
-           mNumSlic = mSlicPicker.getValue();
-           }
-         });
-
-    mObjectType = 0;
-    mGridInitialized = false;
-
-    Spinner typeSpinner  = findViewById(R.id.objectpicker_spinnerType);
-    typeSpinner.setOnItemSelectedListener(this);
-
-    String[] objectType = new String[] {"Mesh: Cubes", "Mesh: Flat", "Mesh: Sphere", "Mesh: Quad"};
-
-    ArrayAdapter<String> adapterType = new ArrayAdapter<>(this, android.R.layout.simple_spinner_item, objectType);
-    adapterType.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
-    typeSpinner.setAdapter(adapterType);
-
-    Spinner bitmapSpinner  = findViewById(R.id.objectpicker_spinnerBitmap);
-    bitmapSpinner.setOnItemSelectedListener(this);
-
-    String[] objectBitmap = new String[] { "Texture: Grid", "Texture: Girl", "Texture: Dog", "Texture: Cat",
-                                           "Texture: Squares", "Texture: Bean", "Texture: Lisa", "Texture: World" };
-
-    ArrayAdapter<String> adapterBitmap = new ArrayAdapter<>(this, android.R.layout.simple_spinner_item, objectBitmap);
-    adapterBitmap.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
-    bitmapSpinner.setAdapter(adapterBitmap);
-    }
-
-///////////////////////////////////////////////////////////////////////////////////////////////////
-
-  private void setGrid()
-    {
-    mGridInitialized = true;
-
-    mNumCols = mColsPicker.getValue();
-    mNumRows = mRowsPicker.getValue();
-
-    int width = mLay.getWidth();
-    int height= mLay.getHeight();
-    int w = mNumCols>0 ? (int)( 0.9f*width / mNumCols) : 0;
-    int h = mNumRows>0 ? (int)( 0.9f*height/ mNumRows) : 0;
-    int size= w<h ? w:h;
-    int pad = size<20 ? 1 : size/20;
-
-    mLay.removeAllViews();
-
-    mShape = new boolean[mNumRows*mNumCols];
-
-    TableRow.LayoutParams p = new TableRow.LayoutParams();
-
-    p.rightMargin  = pad;
-    p.leftMargin   = pad;
-    p.topMargin    = pad;
-    p.bottomMargin = pad;
-    p.height       = size;
-    p.width        = size;
-
-    for (int rows=0; rows<mNumRows; rows++)
-      {
-      TableRow tr = new TableRow(this);
-      tr.setGravity(Gravity.CENTER);
-
-      for(int cols=0; cols<mNumCols; cols++)
-        {
-        Button b = new Button(this);
-        b.setOnClickListener(this);
-        b.setId(rows*mNumCols+cols);
-        b.setLayoutParams(p);
-        b.setBackgroundColor(mObjectType==0 ? COLOR_ON:COLOR_INAC);
-        tr.addView(b, p);
-        mShape[rows*mNumCols+cols] = true;
-        }
-
-      mLay.addView(tr);
-      }
-    }
-
-///////////////////////////////////////////////////////////////////////////////////////////////////
-
-  public void onClick(View view)
-    {
-    if( mObjectType==0 )  // cubes
-      {
-      Button tmp = (Button)view;
-      int id = tmp.getId();
-      mShape[id] = !mShape[id];
-      tmp.setBackgroundColor(mShape[id] ? COLOR_ON:COLOR_OFF);
-      }
-    }
-
-///////////////////////////////////////////////////////////////////////////////////////////////////
-
-  private void uncheckAll()
-    {
-    TableRow tr;
-    Button butt;
-
-    for (int row=0; row<mNumRows; row++)
-      {
-      tr = (TableRow)mLay.getChildAt(row);
-
-      if( tr!=null )
-        {
-        for(int col=0; col<mNumCols; col++)
-          {
-          butt = (Button)tr.getVirtualChildAt(col);
-          butt.setBackgroundColor(mObjectType==0 ? COLOR_ON : COLOR_INAC);
-          mShape[row*mNumCols+col] = true;
-          }
-        }
-      }
-    }
-
-///////////////////////////////////////////////////////////////////////////////////////////////////
-
-  public void Create(View v)
-    {
-    Intent mainInt = new Intent( getApplicationContext(), Effects3DActivity2.class);
-    Bundle b = new Bundle();
-
-    int rows=0, cols=0;
-
-    switch(mObjectType)
-      {
-      case 0:
-      case 1: rows = mNumRows;
-              cols = mNumCols;
-              break;
-      case 2: rows = mNumRows;   // always make the sphere equal in X and Y
-              cols = mNumRows;   //
-              break;
-      case 3: rows = 1;          // a quad is always 1x1
-              cols = 1;
-              break;
-      }
-
-    b.putInt("type", mObjectType);
-    b.putInt("cols", cols);
-    b.putInt("rows", rows);
-    b.putInt("slices", mNumSlic);
-    b.putInt("bitmap", mBitmapID);
-
-    if( mObjectType==0 )   // cubes
-      {
-      String str = "";
-
-      for(int i=0; i<mNumRows*mNumCols; i++)
-        str += mShape[i] ? "1" : "0";
-
-      b.putString("string", str);
-      }
-    else
-      {
-      b.putString("string", "");
-      }
-
-    mainInt.putExtras(b);
-    startActivity(mainInt);
-    }
-
-///////////////////////////////////////////////////////////////////////////////////////////////////
-
-  public void onItemSelected(AdapterView<?> parent, View view, int pos, long id)
-    {
-    switch(parent.getId())
-      {
-      case R.id.objectpicker_spinnerType  : if( mObjectType!=pos )
-                                              {
-                                              mObjectType = pos;
-                                              uncheckAll();
-
-                                              switch(mObjectType)
-                                                {
-                                                case 0: mColsPicker.setEnabled(true);
-                                                        mRowsPicker.setEnabled(true);
-                                                        mSlicPicker.setEnabled(true);
-                                                        break;
-                                                case 1: mColsPicker.setEnabled(true);
-                                                        mRowsPicker.setEnabled(true);
-                                                        mSlicPicker.setEnabled(false);
-                                                        break;
-                                                case 2: mColsPicker.setEnabled(false);
-                                                        mRowsPicker.setEnabled(true);
-                                                        mSlicPicker.setEnabled(false);
-                                                        break;
-                                                case 3: mColsPicker.setEnabled(false);
-                                                        mRowsPicker.setEnabled(false);
-                                                        mSlicPicker.setEnabled(false);
-                                                        break;
-                                                }
-                                              }
-                                            break;
-      case R.id.objectpicker_spinnerBitmap: switch(pos)
-                                              {
-                                              case 0: mBitmapID = -1            ; break;
-                                              case 1: mBitmapID = R.raw.face    ; break;
-                                              case 2: mBitmapID = R.raw.dog     ; break;
-                                              case 3: mBitmapID = R.raw.cat     ; break;
-                                              case 4: mBitmapID = R.raw.grid    ; break;
-                                              case 5: mBitmapID = R.raw.bean    ; break;
-                                              case 6: mBitmapID = R.raw.monalisa; break;
-                                              case 7: mBitmapID = R.raw.world   ; break;
-                                              }
-                                            break;
-      }
-    }
-
-///////////////////////////////////////////////////////////////////////////////////////////////////
-
-  public void onNothingSelected(AdapterView<?> parent)
-    {
-    }
-
-///////////////////////////////////////////////////////////////////////////////////////////////////
-// Overrides
-///////////////////////////////////////////////////////////////////////////////////////////////////
-
-  @Override
-  public void onWindowFocusChanged(boolean hasFocus)
-    {
-    super.onWindowFocusChanged(hasFocus);
-
-    mColsPicker.setValue(mNumCols);
-    mRowsPicker.setValue(mNumRows);
-    mSlicPicker.setValue(mNumSlic);
-
-    if( !mGridInitialized ) setGrid();
-    }
-  }
diff --git a/src/main/java/org/distorted/examples/generic/Effects3DTabViewPager.java b/src/main/java/org/distorted/examples/generic/Effects3DTabViewPager.java
deleted file mode 100644
index ce4579f..0000000
--- a/src/main/java/org/distorted/examples/generic/Effects3DTabViewPager.java
+++ /dev/null
@@ -1,86 +0,0 @@
-///////////////////////////////////////////////////////////////////////////////////////////////////
-// Copyright 2018 Leszek Koltunski                                                               //
-//                                                                                               //
-// This file is part of Distorted.                                                               //
-//                                                                                               //
-// Distorted is free software: you can redistribute it and/or modify                             //
-// it under the terms of the GNU General Public License as published by                          //
-// the Free Software Foundation, either version 2 of the License, or                             //
-// (at your option) any later version.                                                           //
-//                                                                                               //
-// Distorted is distributed in the hope that it will be useful,                                  //
-// but WITHOUT ANY WARRANTY; without even the implied warranty of                                //
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the                                 //
-// GNU General Public License for more details.                                                  //
-//                                                                                               //
-// You should have received a copy of the GNU General Public License                             //
-// along with Distorted.  If not, see <http://www.gnu.org/licenses/>.                            //
-///////////////////////////////////////////////////////////////////////////////////////////////////
-
-package org.distorted.examples.generic;
-
-import android.support.v4.app.Fragment;
-import android.support.v4.app.FragmentManager;
-import android.support.v4.app.FragmentPagerAdapter;
-import android.os.Bundle;
-
-import org.distorted.examples.R;
-
-import java.lang.ref.WeakReference;
-
-///////////////////////////////////////////////////////////////////////////////////////////////////
-
-public class Effects3DTabViewPager extends FragmentPagerAdapter
-  {
-  private WeakReference<Effects3DActivity2> mAct;
-
-///////////////////////////////////////////////////////////////////////////////////////////////////
-
-  Effects3DTabViewPager(Effects3DActivity2 act, FragmentManager fm)
-    {
-    super(fm);
-    mAct = new WeakReference<>(act);
-    }
-
-///////////////////////////////////////////////////////////////////////////////////////////////////
-
-  @Override
-  public Fragment getItem(int position)
-    {
-    if( position>=0 && position<Effects3DActivity2.NUM_TABS )
-      {
-      Effects3DTab tab = new Effects3DTab();
-
-      Bundle bundle = new Bundle();
-      bundle.putInt("position", position);
-      tab.setArguments(bundle);
-
-      return tab;
-      }
-
-    return null;
-    }
-
-///////////////////////////////////////////////////////////////////////////////////////////////////
-
-  @Override
-  public int getCount()
-    {
-    return Effects3DActivity2.NUM_TABS;
-    }
-
-///////////////////////////////////////////////////////////////////////////////////////////////////
-
-  @Override
-  public CharSequence getPageTitle(int position)
-    {
-    switch (position)
-      {
-      case 0 : return mAct.get().getString(R.string.type_matrix);
-      case 1 : return mAct.get().getString(R.string.type_vertex);
-      case 2 : return mAct.get().getString(R.string.type_fragment);
-      case 3 : return mAct.get().getString(R.string.type_postprocess);
-      default: return null;
-      }
-    }
-  }
diff --git a/src/main/java/org/distorted/examples/olimpic/OlimpicRenderer.java b/src/main/java/org/distorted/examples/olimpic/OlimpicRenderer.java
index bb7e9eb..2672274 100644
--- a/src/main/java/org/distorted/examples/olimpic/OlimpicRenderer.java
+++ b/src/main/java/org/distorted/examples/olimpic/OlimpicRenderer.java
@@ -132,15 +132,15 @@ class OlimpicRenderer implements GLSurfaceView.Renderer
       for(int j=0; j<NUM_LEAVES; j++)
         {
         mEffects[j] = new DistortedEffects();
-        mEffects[j].apply( new MatrixEffectRotate(new Static1D(j*(360/NUM_LEAVES)), axis, center) );
         mEffects[j].apply(new MatrixEffectMove(moveVector));
+        mEffects[j].apply( new MatrixEffectRotate(new Static1D(j*(360/NUM_LEAVES)), axis, center) );
         }
 
       for(int i=0; i<NUM_CIRCLES; i++)
         {
         DistortedEffects effects = new DistortedEffects();
-        effects.apply( new MatrixEffectMove(new Static3D(positions[2*i], positions[2*i+1], 0)) );
         effects.apply( new MatrixEffectRotate(rot, axis, center) );
+        effects.apply( new MatrixEffectMove(new Static3D(positions[2*i], positions[2*i+1], 0)) );
         effects.apply( new FragmentEffectChroma(new Static1D(0.5f), new Static3D(colors[3*i],colors[3*i+1], colors[3*i+2])) );
 
         mCircleNode[i] = new DistortedNode( surface, effects, circleMesh);
diff --git a/src/main/java/org/distorted/examples/quaternion/QuaternionRenderer.java b/src/main/java/org/distorted/examples/quaternion/QuaternionRenderer.java
index 538bcbf..7950854 100644
--- a/src/main/java/org/distorted/examples/quaternion/QuaternionRenderer.java
+++ b/src/main/java/org/distorted/examples/quaternion/QuaternionRenderer.java
@@ -104,9 +104,7 @@ class QuaternionRenderer implements GLSurfaceView.Renderer
     
   public void onSurfaceChanged(GL10 glUnused, int width, int height) 
     {
-    float w = mTexture.getWidth();
-    float h = mTexture.getHeight();
-    float factor = 0.5f*(width>height ? height/h:width/w);
+    float factor = 0.5f*(width>height ? height:width);
 
     mScale.set(factor,factor,factor);
     mScreen.resize(width, height);
diff --git a/src/main/java/org/distorted/examples/starwars/StarWarsRenderer.java b/src/main/java/org/distorted/examples/starwars/StarWarsRenderer.java
index bfba10c..e502a12 100644
--- a/src/main/java/org/distorted/examples/starwars/StarWarsRenderer.java
+++ b/src/main/java/org/distorted/examples/starwars/StarWarsRenderer.java
@@ -214,6 +214,8 @@ class StarWarsRenderer implements GLSurfaceView.Renderer, EffectListener
     if( mCrawlBackgroundTexture!=null ) mCrawlBackgroundTexture.markForDeletion();
     mCrawlBackgroundTexture = new DistortedTexture();
 
+    mCrawlBackgroundQuad.setStretch(scrW,(int)(scrH*Math.sin(angleA)/Math.sin(angleB)),0);
+
     int randomA, randomX, randomY, randomTime;
     float randomS, randomAlpha1, randomAlpha2;
        
@@ -230,11 +232,11 @@ class StarWarsRenderer implements GLSurfaceView.Renderer, EffectListener
       randomAlpha1 = 0.2f + 0.8f*mRnd.nextFloat();
       randomAlpha2 = 0.8f + 0.2f*mRnd.nextFloat();
       randomTime = 500+mRnd.nextInt(2000);
-      
-      mStarEffects[i].apply( new MatrixEffectMove(new Static3D(randomX,randomY,0)) );
-      mStarEffects[i].apply( new MatrixEffectScale(randomS) );
+
       mStarEffects[i].apply( new MatrixEffectRotate(new Static1D(randomA), axis, center) );
-      
+      mStarEffects[i].apply( new MatrixEffectScale(randomS) );
+      mStarEffects[i].apply( new MatrixEffectMove(new Static3D(randomX,randomY,0)) );
+
       Dynamic1D di = new Dynamic1D(randomTime,0.0f);
       di.setNoise(alphaNoise);
       di.add(new Static1D(randomAlpha1));
@@ -245,16 +247,20 @@ class StarWarsRenderer implements GLSurfaceView.Renderer, EffectListener
       mScreen.attach(mStarTexture, mStarEffects[i], mStarQuad);
       }
       
-    float scale = (0.5f*scrW/mGFFATexture.getWidth());
+    float scale = (0.5f*scrW/mGFFAQuad.getStretchX());
     
     Dynamic1D di = new Dynamic1D(6000,0.5f);
     di.add(new Static1D(1.0f));
     di.add(new Static1D(1.0f));
     di.add(new Static1D(0.0f));
-    
-    mGFFAEffects.apply( new MatrixEffectMove(new Static3D(-scrW/3 + mGFFATexture.getWidth()/2 ,scrH/6,0)) );
+
+    FragmentEffectAlpha alpha = new FragmentEffectAlpha(di);
+    alpha.notifyWhenFinished(this);
+    alphaEffectID = alpha.getID();
+
     mGFFAEffects.apply( new MatrixEffectScale(scale) );
-    mGFFAEffects.apply( new FragmentEffectAlpha(di) );
+    mGFFAEffects.apply( new MatrixEffectMove(new Static3D(-scrW/3 + mGFFAQuad.getStretchX()/2 ,scrH/6,0)) );
+    mGFFAEffects.apply( alpha );
       
     mScreen.attach(mGFFATexture, mGFFAEffects, mGFFAQuad);
     }
@@ -381,7 +387,7 @@ class StarWarsRenderer implements GLSurfaceView.Renderer, EffectListener
       mScreen.detach(mGFFAEffects);
       mGFFATexture.markForDeletion();
 
-      int screenW=mScreen.getWidth();
+      int screenW = mScreen.getWidth();
       float logoW = mLogoQuad.getStretchX();
       int initSize= (int)(3.0f*screenW/logoW);
       int finaSize= (int)(0.1f*screenW/logoW);
@@ -389,7 +395,6 @@ class StarWarsRenderer implements GLSurfaceView.Renderer, EffectListener
       Dynamic3D di = new Dynamic3D(10000,0.5f);
       di.add(new Static3D(initSize,initSize,1));
       di.add(new Static3D(finaSize,finaSize,1));
-
       MatrixEffectScale scale = new MatrixEffectScale(di);
       scale.notifyWhenFinished(this);
       scaleEffectID = scale.getID();
@@ -401,16 +406,16 @@ class StarWarsRenderer implements GLSurfaceView.Renderer, EffectListener
       mScreen.detach(mLogoEffects);
       mLogoTexture.markForDeletion();
         
-      int crawlW = mCrawlTexture.getWidth();
-      int crawlH = mCrawlTexture.getHeight();
-      int screenW= mScreen.getWidth();
-      int screenH= mScreen.getHeight();
-      int backW  = mCrawlBackgroundTexture.getWidth();
-      int backH  = mCrawlBackgroundTexture.getHeight();
-      float scale= (float)backW/crawlW;
+      float crawlW = mCrawlQuad.getStretchX();
+      float crawlH = mCrawlQuad.getStretchY();
+      float screenW= mScreen.getWidth();
+      float screenH= mScreen.getHeight();
+      float backW  = mCrawlBackgroundQuad.getStretchX();
+      float backH  = mCrawlBackgroundQuad.getStretchY();
+      float scale  = backW/crawlW;
 
-      mCrawlBackgroundEffects.apply( new MatrixEffectMove(new Static3D( 0, (backH-screenH)/2, 0)) );
       mCrawlBackgroundEffects.apply( new MatrixEffectRotate(new Static1D(CRAWL_ANGLE), new Static3D(1,0,0), new Static3D(0,-backH/2,0)) );
+      mCrawlBackgroundEffects.apply( new MatrixEffectMove(new Static3D( 0, (backH-screenH)/2, 0)) );
 
       final int transpDist = 5;
       Static3D center = new Static3D( screenW/2 , transpDist*backH , 0 );
@@ -427,12 +432,12 @@ class StarWarsRenderer implements GLSurfaceView.Renderer, EffectListener
       mCrawlEffects.apply( new MatrixEffectScale(new Static3D(scale,scale,scale)) );
       mCrawlEffects.apply( move );
 
-      mBackground = mScreen.attach(mCrawlBackgroundTexture, mCrawlBackgroundEffects,mCrawlBackgroundQuad);
-      mBackground.attach(mCrawlTexture, mCrawlEffects,mCrawlQuad);
+      mBackground = mScreen.attach(mCrawlBackgroundTexture, mCrawlBackgroundEffects, mCrawlBackgroundQuad);
+      mBackground.attach(mCrawlTexture, mCrawlEffects, mCrawlQuad);
       mBackground.glDisable(GLES31.GL_DEPTH_TEST);
       mBackground.glDepthMask(false);
       }
-    else if( effectID==moveEffectID )
+    else if( effectID == moveEffectID )
       {
       mScreen.detach(mBackground);
       mBackground.detach(mCrawlEffects);
