commit fd0f1dd87ed1eb8b5807f4a1abbd38c30552947a
Author: Leszek Koltunski <leszek@koltunski.pl>
Date:   Tue Dec 27 01:10:03 2022 +0100

    Stars: introductory dialog explaining the concept of stars.

diff --git a/src/main/java/org/distorted/examples/flatblur2/FlatBlur2Renderer.java b/src/main/java/org/distorted/examples/flatblur2/FlatBlur2Renderer.java
index 9f654ee..28cdb93 100644
--- a/src/main/java/org/distorted/examples/flatblur2/FlatBlur2Renderer.java
+++ b/src/main/java/org/distorted/examples/flatblur2/FlatBlur2Renderer.java
@@ -20,10 +20,14 @@
 package org.distorted.examples.flatblur2;
 
 import android.content.res.Resources;
+import android.graphics.Bitmap;
+import android.graphics.BitmapFactory;
 import android.opengl.GLSurfaceView;
 
+import org.distorted.examples.R;
 import org.distorted.library.effect.EffectQuality;
 import org.distorted.library.effect.EffectType;
+import org.distorted.library.effect.MatrixEffectMove;
 import org.distorted.library.effect.MatrixEffectRotate;
 import org.distorted.library.effect.MatrixEffectScale;
 import org.distorted.library.effect.PostprocessEffectGlow;
@@ -43,6 +47,9 @@ import org.distorted.library.type.Static2D;
 import org.distorted.library.type.Static3D;
 import org.distorted.library.type.Static4D;
 
+import java.io.IOException;
+import java.io.InputStream;
+
 import javax.microedition.khronos.egl.EGLConfig;
 import javax.microedition.khronos.opengles.GL10;
 
@@ -52,8 +59,9 @@ class FlatBlur2Renderer implements GLSurfaceView.Renderer, DistortedLibrary.Exce
 {
     private final GLSurfaceView mView;
     private final DistortedScreen mScreen;
-    private Static3D mScale1, mScale2;
+    private Static3D mScale1, mScale2, mMove;
     private DistortedNode mNode;
+    private float mHeight;
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
@@ -74,6 +82,7 @@ class FlatBlur2Renderer implements GLSurfaceView.Renderer, DistortedLibrary.Exce
 
     public void onSurfaceChanged(GL10 glUnused, int width, int height)
       {
+      mHeight = height;
       float s = width*0.05f;
       mScale1.set(width,width,0);
       mScale2.set(s,s,s);
@@ -112,6 +121,35 @@ class FlatBlur2Renderer implements GLSurfaceView.Renderer, DistortedLibrary.Exce
       DistortedNode node2 = new DistortedNode(surface2,effects2,mesh2);
       mNode.attach(node2);
 
+      InputStream is = mView.getContext().getResources().openRawResource(R.raw.leaf);
+      Bitmap bitmap;
+
+      try
+        {
+        bitmap = BitmapFactory.decodeStream(is);
+        }
+      finally
+        {
+        try
+          {
+          is.close();
+          }
+        catch(IOException ignored) { }
+        }
+
+      DistortedTexture tex = new DistortedTexture();
+      tex.setTexture(bitmap);
+      DistortedEffects effects = new DistortedEffects();
+      MeshQuad mesh = new MeshQuad();
+      DistortedNode leaf = new DistortedNode(tex,effects,mesh);
+      mScreen.attach(leaf);
+
+      MatrixEffectScale sc = new MatrixEffectScale(new Static3D(50,50,50));
+      effects.apply(sc);
+      mMove = new Static3D(0,0,0);
+      MatrixEffectMove mv = new MatrixEffectMove(mMove);
+      effects.apply((mv));
+
       OverlayStars.enableEffects();
       DistortedLibrary.onSurfaceCreated( mView.getContext(), this);
       }
@@ -127,10 +165,14 @@ class FlatBlur2Renderer implements GLSurfaceView.Renderer, DistortedLibrary.Exce
 
     public void button1()
       {
+      /*
       OverlayStars stars = new OverlayStars();
       Resources res = mView.getResources();
       DataStars data  = new DataStars(10,5,res);
       stars.startOverlay(mScreen,this,data);
+       */
+
+      mMove.set(0,mHeight*0.5f,0);
       }
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
