commit bdf04acf11240b614f4ae2f648f4b99d26cd9cb6
Author: Leszek Koltunski <leszek@koltunski.pl>
Date:   Wed May 6 00:18:19 2020 +0100

    Convert Stencil app to the stretch-less API.

diff --git a/src/main/java/org/distorted/examples/stencil/StencilRenderer.java b/src/main/java/org/distorted/examples/stencil/StencilRenderer.java
index 69aeea7..c0226a5 100644
--- a/src/main/java/org/distorted/examples/stencil/StencilRenderer.java
+++ b/src/main/java/org/distorted/examples/stencil/StencilRenderer.java
@@ -29,6 +29,7 @@ import org.distorted.library.effect.FragmentEffectBrightness;
 import org.distorted.library.effect.MatrixEffectMove;
 import org.distorted.library.effect.MatrixEffectRotate;
 import org.distorted.library.effect.MatrixEffectScale;
+import org.distorted.library.effect.VertexEffectScale;
 import org.distorted.library.main.DistortedLibrary;
 import org.distorted.library.main.DistortedEffects;
 import org.distorted.library.main.DistortedFramebuffer;
@@ -101,8 +102,6 @@ class StencilRenderer implements GLSurfaceView.Renderer
       DistortedEffects floorEffects = new DistortedEffects();
       DistortedEffects FBOEffects   = new DistortedEffects();
 
-      quaFlo.setStretch(2,2,0);
-
       mCube1Node = new DistortedNode(mCubeTex , cube1Effects, cube   );
       mCube2Node = new DistortedNode(mCubeTex , cube2Effects, cube   );
       mFloorNode = new DistortedNode(mFloorTex, floorEffects, quaFlo );
@@ -146,8 +145,10 @@ class StencilRenderer implements GLSurfaceView.Renderer
 
       Static3D rotCenter  = new Static3D(0,0,0);
 
+      VertexEffectScale  vertexScale = new VertexEffectScale( new Static3D(2,2,0) );
+
       MatrixEffectScale  scale = new MatrixEffectScale(mScale);
-      MatrixEffectMove   move1 = new MatrixEffectMove( new Static3D( 0, 0, cube.getStretchX()/2) );
+      MatrixEffectMove   move1 = new MatrixEffectMove( new Static3D( 0, 0, 0.5f) );
       MatrixEffectRotate rotaX = new MatrixEffectRotate(new Static1D(-60.0f), axisX, rotCenter);
       MatrixEffectRotate rotaZ = new MatrixEffectRotate(rotDyn, axisZ, rotCenter);
 
@@ -162,6 +163,7 @@ class StencilRenderer implements GLSurfaceView.Renderer
       cube1Effects.apply( rotaX );
       /////////////////////////////////////////////////////////////////////////////////////////////////////
       // Floor
+      floorEffects.apply(vertexScale);
       floorEffects.apply( scale );
       floorEffects.apply( rotaZ );
       floorEffects.apply( rotaX );
@@ -190,16 +192,10 @@ class StencilRenderer implements GLSurfaceView.Renderer
     
     public void onSurfaceChanged(GL10 glUnused, int width, int height) 
       {
-      float cw = mCube1Node.getMesh().getStretchX();
-      float ch = mCube1Node.getMesh().getStretchY();
-
-      float bw = mFBONode.getMesh().getStretchX();
-      float bh = mFBONode.getMesh().getStretchY();
-
-      float scale = 0.4f*(width>height ? height/ch:width/cw);
+      float scale = 0.4f*(Math.min(width,height));
 
       mScale.set(scale,scale,scale);
-      mFBOScale.set((float)width/bw, (float)height/bh, 1.0f );
+      mFBOScale.set(width,height,1);
 
       mFBONode.resizeFBO(width,height);
       mScreen.resize( width,height);
@@ -228,6 +224,7 @@ class StencilRenderer implements GLSurfaceView.Renderer
       mCubeTex.setTexture(bitmap);
       mFloorTex.setColor(0xff000000);  // ARGB
 
+      VertexEffectScale.enable();
       FragmentEffectBrightness.enable();
 
       try
