commit 0ba5de001b7ca0c33c7bba37f6df7f315b99277b
Author: Leszek Koltunski <leszek@koltunski.pl>
Date:   Sat Feb 29 15:39:55 2020 +0000

    Fixes for the merge.

diff --git a/src/main/java/org/distorted/examples/movingglow/MovingGlowRenderer.java b/src/main/java/org/distorted/examples/movingglow/MovingGlowRenderer.java
index 21c66ea..ea0f26d 100644
--- a/src/main/java/org/distorted/examples/movingglow/MovingGlowRenderer.java
+++ b/src/main/java/org/distorted/examples/movingglow/MovingGlowRenderer.java
@@ -34,9 +34,7 @@ import org.distorted.library.main.DistortedEffects;
 import org.distorted.library.main.DistortedNode;
 import org.distorted.library.main.DistortedScreen;
 import org.distorted.library.main.DistortedTexture;
-import org.distorted.library.mesh.MeshBase;
 import org.distorted.library.mesh.MeshQuad;
-import org.distorted.library.mesh.MeshRectangles;
 import org.distorted.library.message.EffectListener;
 import org.distorted.library.type.Dynamic1D;
 import org.distorted.library.type.Dynamic4D;
@@ -88,7 +86,7 @@ class MovingGlowRenderer implements GLSurfaceView.Renderer,EffectListener
       DistortedEffects rootEffects = new DistortedEffects();
       DistortedNode root = new DistortedNode(surface, rootEffects, rootMesh);
 
-      Static3D moveVector = new Static3D(0.55f*LEAF_SIZE, (mRootH-LEAF_SIZE)/2, 0);
+      Static3D moveVector = new Static3D(-1.45f*LEAF_SIZE, 0, 0);
       Static1D chromaLevel= new Static1D(0.5f);
       Static3D center     = new Static3D(0,0,0);
       Static3D axis       = new Static3D(0,0,1);
@@ -98,8 +96,8 @@ class MovingGlowRenderer implements GLSurfaceView.Renderer,EffectListener
       for(int j=0; j<NUM_LEAVES; j++)
         {
         mLeafEffects[j] = new DistortedEffects();
-        mLeafEffects[j].apply( new MatrixEffectRotate(new Static1D(j*(360/NUM_LEAVES)), axis, center) );
         mLeafEffects[j].apply(leafMove);
+        mLeafEffects[j].apply( new MatrixEffectRotate(new Static1D(j*(360/NUM_LEAVES)), axis, center) );
         mLeafEffects[j].apply( new FragmentEffectChroma(chromaLevel, new Static3D(colors[3*j],colors[3*j+1], colors[3*j+2])) );
         DistortedNode node = new DistortedNode( mLeaf, mLeafEffects[j], leafMesh);
         root.attach(node);
@@ -113,8 +111,8 @@ class MovingGlowRenderer implements GLSurfaceView.Renderer,EffectListener
       rot.add(new Static1D(360));
 
       DistortedEffects effects = root.getEffects();
+      effects.apply(new MatrixEffectRotate(rot, axis, center) );
       effects.apply(new MatrixEffectScale(mScale));
-      effects.apply( new MatrixEffectRotate(rot, axis, center) );
 
       Dynamic1D radiusDyn = new Dynamic1D(FLASH_TIME,1.0f);
       radiusDyn.add(new Static1D( 0));
diff --git a/src/main/java/org/distorted/examples/multiblur/MultiblurRenderer.java b/src/main/java/org/distorted/examples/multiblur/MultiblurRenderer.java
index b4823df..c4098ae 100644
--- a/src/main/java/org/distorted/examples/multiblur/MultiblurRenderer.java
+++ b/src/main/java/org/distorted/examples/multiblur/MultiblurRenderer.java
@@ -131,10 +131,10 @@ class MultiblurRenderer implements GLSurfaceView.Renderer
 
       for(int i=0; i<NUM_OBJECTS; i++)
         {
-        effects[i].apply(scaleEffect);
-        effects[i].apply(quatEffect1);
-        effects[i].apply(quatEffect2);
         effects[i].apply(new MatrixEffectMove(mMoveVector[i]));
+        effects[i].apply(quatEffect2);
+        effects[i].apply(quatEffect1);
+        effects[i].apply(scaleEffect);
         }
       }
 
diff --git a/src/main/java/org/distorted/examples/postprocesstree/PostprocessTreeActivity.java b/src/main/java/org/distorted/examples/postprocesstree/PostprocessTreeActivity.java
index 68971ff..11794ae 100644
--- a/src/main/java/org/distorted/examples/postprocesstree/PostprocessTreeActivity.java
+++ b/src/main/java/org/distorted/examples/postprocesstree/PostprocessTreeActivity.java
@@ -41,8 +41,8 @@ public class PostprocessTreeActivity extends Activity implements SeekBar.OnSeekB
       {
       super.onCreate(savedState);
       setContentView(R.layout.postprocesstreelayout);
-      mText = (TextView)findViewById(R.id.postprocesstreeText);
-      SeekBar bar = (SeekBar)findViewById(R.id.postprocesstreeSeek);
+      mText = findViewById(R.id.postprocesstreeText);
+      SeekBar bar = findViewById(R.id.postprocesstreeSeek);
       bar.setOnSeekBarChangeListener(this);
       bar.setProgress(50);
       }
@@ -52,7 +52,7 @@ public class PostprocessTreeActivity extends Activity implements SeekBar.OnSeekB
     @Override
     protected void onPause()
       {
-      GLSurfaceView view = (GLSurfaceView) this.findViewById(R.id.postprocesstreeSurfaceView);
+      GLSurfaceView view = findViewById(R.id.postprocesstreeSurfaceView);
       view.onPause();
       DistortedLibrary.onPause();
       super.onPause();
@@ -64,7 +64,7 @@ public class PostprocessTreeActivity extends Activity implements SeekBar.OnSeekB
     protected void onResume()
       {
       super.onResume();
-      GLSurfaceView view = (GLSurfaceView) this.findViewById(R.id.postprocesstreeSurfaceView);
+      GLSurfaceView view = findViewById(R.id.postprocesstreeSurfaceView);
       view.onResume();
       }
 
@@ -81,7 +81,7 @@ public class PostprocessTreeActivity extends Activity implements SeekBar.OnSeekB
 
     public void onProgressChanged(SeekBar bar, int progress, boolean fromUser)
       {
-      PostprocessTreeSurfaceView view = (PostprocessTreeSurfaceView) this.findViewById(R.id.postprocesstreeSurfaceView);
+      PostprocessTreeSurfaceView view = findViewById(R.id.postprocesstreeSurfaceView);
 
       switch (bar.getId())
         {
diff --git a/src/main/java/org/distorted/examples/postprocesstree/PostprocessTreeRenderer.java b/src/main/java/org/distorted/examples/postprocesstree/PostprocessTreeRenderer.java
index b5b5e1a..6dc4106 100644
--- a/src/main/java/org/distorted/examples/postprocesstree/PostprocessTreeRenderer.java
+++ b/src/main/java/org/distorted/examples/postprocesstree/PostprocessTreeRenderer.java
@@ -35,7 +35,6 @@ import org.distorted.library.main.DistortedNode;
 import org.distorted.library.main.DistortedScreen;
 import org.distorted.library.main.DistortedTexture;
 import org.distorted.library.mesh.MeshQuad;
-import org.distorted.library.mesh.MeshRectangles;
 import org.distorted.library.type.Dynamic1D;
 import org.distorted.library.type.Static1D;
 import org.distorted.library.type.Static3D;
@@ -111,8 +110,8 @@ class PostprocessTreeRenderer implements GLSurfaceView.Renderer
       for(int j=0; j<NUM_LEAVES; j++)
         {
         outerLeafEffects[j] = new DistortedEffects();
-        outerLeafEffects[j].apply( new MatrixEffectRotate(new Static1D(j*(360/NUM_LEAVES)), axis, center) );
         outerLeafEffects[j].apply(new MatrixEffectMove(outerMoveVector));
+        outerLeafEffects[j].apply( new MatrixEffectRotate(new Static1D(j*(360/NUM_LEAVES)), axis, center) );
 
         root.attach(mLeaf, outerLeafEffects[j], leafMesh);
         }
@@ -127,8 +126,8 @@ class PostprocessTreeRenderer implements GLSurfaceView.Renderer
       for(int j=0; j<NUM_LEAVES; j++)
         {
         innerLeafEffects[j] = new DistortedEffects();
-        innerLeafEffects[j].apply( new MatrixEffectRotate(new Static1D(j*(360/NUM_LEAVES)), axis, center) );
         innerLeafEffects[j].apply(new MatrixEffectMove(innerMoveVector));
+        innerLeafEffects[j].apply( new MatrixEffectRotate(new Static1D(j*(360/NUM_LEAVES)), axis, center) );
 
         innerNode.attach( mLeaf, innerLeafEffects[j], leafMesh );
         }
diff --git a/src/main/java/org/distorted/examples/stencil/StencilRenderer.java b/src/main/java/org/distorted/examples/stencil/StencilRenderer.java
index 8623875..6b46333 100644
--- a/src/main/java/org/distorted/examples/stencil/StencilRenderer.java
+++ b/src/main/java/org/distorted/examples/stencil/StencilRenderer.java
@@ -136,12 +136,6 @@ class StencilRenderer implements GLSurfaceView.Renderer
 
       setScreen(true);
 
-      float cw = cube.getStretchX();
-      float ch = cube.getStretchY();
-
-      float fw = quaFlo.getStretchX();
-      float fh = quaFlo.getStretchY();
-
       Static3D axisX = new Static3D(1,0,0);
       Static3D axisZ = new Static3D(0,0,1);
 
@@ -153,33 +147,31 @@ class StencilRenderer implements GLSurfaceView.Renderer
       Static3D rotCenter  = new Static3D(0,0,0);
 
       MatrixEffectScale  scale = new MatrixEffectScale(mScale);
-      MatrixEffectMove   move1 = new MatrixEffectMove( new Static3D( 0, 0, cw/2) );
+      MatrixEffectMove   move1 = new MatrixEffectMove( new Static3D( 0, 0, cube.getStretchX()/2) );
       MatrixEffectRotate rotaX = new MatrixEffectRotate(new Static1D(-60.0f), axisX, rotCenter);
       MatrixEffectRotate rotaZ = new MatrixEffectRotate(rotDyn, axisZ, rotCenter);
 
       /////////////////////////////////////////////////////////////////////////////////////////////////////
       // First move the cube and its reflection to the middle of the floor. Then scale the floor, the cube
-      // and its reflection. Then keep rotating all along the Z axis, tilt all, and finally move all to the
-      // middle of the screen.
+      // and its reflection. Then keep rotating all along the Z axis, tilt all.
       /////////////////////////////////////////////////////////////////////////////////////////////////////
       // The cube
-      cube1Effects.apply( rotaX );
-      cube1Effects.apply( rotaZ );
-      cube1Effects.apply( scale );
       cube1Effects.apply( move1 );
+      cube1Effects.apply( scale );
+      cube1Effects.apply( rotaZ );
+      cube1Effects.apply( rotaX );
       /////////////////////////////////////////////////////////////////////////////////////////////////////
       // Floor
-      floorEffects.apply( rotaX );
-      floorEffects.apply( rotaZ );
       floorEffects.apply( scale );
+      floorEffects.apply( rotaZ );
+      floorEffects.apply( rotaX );
       /////////////////////////////////////////////////////////////////////////////////////////////////////
       // Reflection
-      cube2Effects.apply( rotaX );
-      cube2Effects.apply( rotaZ );
-      cube2Effects.apply( scale );
-      cube2Effects.apply( new MatrixEffectScale(new Static3D(1,1,-1)) );
       cube2Effects.apply( move1 );
       cube2Effects.apply( new MatrixEffectScale(new Static3D(1,1,-1)) );
+      cube2Effects.apply( scale );
+      cube2Effects.apply( rotaZ );
+      cube2Effects.apply( rotaX );
       cube2Effects.apply( new FragmentEffectBrightness(new Static1D(0.5f)) );
 
       /////////////////////////////////////////////////////////////////////////////////////////////////////
diff --git a/src/main/java/org/distorted/examples/transparency/TransparencyRenderer.java b/src/main/java/org/distorted/examples/transparency/TransparencyRenderer.java
index cad5cac..ee71e52 100644
--- a/src/main/java/org/distorted/examples/transparency/TransparencyRenderer.java
+++ b/src/main/java/org/distorted/examples/transparency/TransparencyRenderer.java
@@ -111,10 +111,10 @@ class TransparencyRenderer implements GLSurfaceView.Renderer
         mEffects[i]      = new DistortedEffects();
         mEffects[i].apply(mBlur[i]);
         mEffects[i].apply(alpha[i]);
-        mEffects[i].apply(scaleEffect);
-        mEffects[i].apply(quatEffect1);
-        mEffects[i].apply(quatEffect2);
         mEffects[i].apply(new MatrixEffectMove(mMoveVector[i]));
+        mEffects[i].apply(quatEffect2);
+        mEffects[i].apply(quatEffect1);
+        mEffects[i].apply(scaleEffect);
 
         mNode[i] = new DistortedNode(mTex[i], mEffects[i], mesh );
         mScreen.attach(mNode[i]);
diff --git a/src/main/java/org/distorted/examples/triblur/TriblurRenderer.java b/src/main/java/org/distorted/examples/triblur/TriblurRenderer.java
index 32bf584..43bccf4 100644
--- a/src/main/java/org/distorted/examples/triblur/TriblurRenderer.java
+++ b/src/main/java/org/distorted/examples/triblur/TriblurRenderer.java
@@ -56,9 +56,9 @@ class TriblurRenderer implements GLSurfaceView.Renderer
 
     private static final int[] OBJECTS =
         {
-        -150, 0, 0,   255,   0,  0,  // x,y,z, R,G,B
+        -130, 0, 0,   255,   0,  0,  // x,y,z, R,G,B
            0, 0, 0,   255, 255,  0,  //
-        +150, 0, 0,     0, 255,  0,  //
+        +130, 0, 0,     0, 255,  0,  //
         };
 
     private static final int NUM_OBJECTS = OBJECTS.length/NUM;
@@ -124,13 +124,13 @@ class TriblurRenderer implements GLSurfaceView.Renderer
         mGlow[i]         = new PostprocessEffectGlow(mEffectVector[i], new Static4D(1.0f,1.0f,1.0f,0.5f) );
         chroma[i]        = new FragmentEffectChroma( new Static1D(0.3f), chromaVector[i]);
         effects[i]       = new DistortedEffects();
-
         effects[i].apply(mBlur[i]);
         effects[i].apply(chroma[i]);
-        effects[i].apply( (i==0||i==NUM_OBJECTS-1) ? scaleEffect1 : scaleEffect2 );
-        effects[i].apply(quatEffect1);
-        effects[i].apply(quatEffect2);
+
         effects[i].apply(new MatrixEffectMove(moveVector[i]));
+        effects[i].apply(quatEffect2);
+        effects[i].apply(quatEffect1);
+        effects[i].apply( (i==0||i==NUM_OBJECTS-1) ? scaleEffect1 : scaleEffect2 );
 
         mEffectStatus[i] = 1;
         mNode[i] = new DistortedNode(mTex, effects[i], mesh );
@@ -212,8 +212,8 @@ class TriblurRenderer implements GLSurfaceView.Renderer
       {
       mScreenMin = width<height ? width:height;
 
-      float factor1 = 0.22f*mScreenMin/OBJ_SIZE;
-      float factor2 = 0.80f*factor1;
+      float factor1 = 0.20f*mScreenMin/OBJ_SIZE;
+      float factor2 = 0.75f*factor1;
       mScale1.set(factor1,factor1,factor1);
       mScale2.set(factor2,factor2,factor2);
       mScreen.resize(width, height);
