commit 24ab1cf835167d0b9a707966a53aeae4e930a41d
Author: leszek <leszek@koltunski.pl>
Date:   Fri May 26 23:26:47 2017 +0100

    Move showing FPS in the uppoer-left corner of the Screen to the Library.
    App can enable/disable this at any time with a single API call.

diff --git a/src/main/java/org/distorted/examples/deform/DeformRenderer.java b/src/main/java/org/distorted/examples/deform/DeformRenderer.java
index a96201e..c4e820b 100644
--- a/src/main/java/org/distorted/examples/deform/DeformRenderer.java
+++ b/src/main/java/org/distorted/examples/deform/DeformRenderer.java
@@ -46,7 +46,6 @@ class DeformRenderer implements GLSurfaceView.Renderer
    {
    private static final int NUM_VECTORS =  8;
    private static final int NUM_LINES   = 10;
-   private static final int NUM_FRAMES  = 100;
 
    private GLSurfaceView mView;
    private DistortedTexture stretchTexture;
@@ -72,50 +71,15 @@ class DeformRenderer implements GLSurfaceView.Renderer
    private EffectNames mMode = EffectNames.DISTORT;
    private long mLastEffect = -1;
 
-   // FPS
-   private MeshObject fpsMesh;
-   private DistortedTexture fpsTexture;
-   private DistortedEffects fpsEffects;
-   private Canvas fpsCanvas;
-   private Bitmap fpsBitmap;
-   private Paint mPaint;
-   private int fpsH, fpsW;
-   private String fpsString = "";
-   private long lastTime=0;
-   private long[] durations;
-   private int currDuration;
-
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
    DeformRenderer(GLSurfaceView view)
       { 
       mView = view;
 
-      fpsW = 120;
-      fpsH =  70;
-
-      fpsBitmap = Bitmap.createBitmap(fpsW,fpsH, Bitmap.Config.ARGB_8888);
-      fpsMesh = new MeshFlat(1,1);
-      fpsTexture = new DistortedTexture(fpsW,fpsH);
-      fpsTexture.setTexture(fpsBitmap);
-      fpsCanvas = new Canvas(fpsBitmap);
-      fpsEffects = new DistortedEffects();
-      fpsEffects.move( new Static3D(5,5,0) );
-
-      mPaint = new Paint();
-      mPaint.setAntiAlias(true);
-      mPaint.setTextAlign(Paint.Align.CENTER);
-      mPaint.setTextSize(0.7f*fpsH);
-
       stretchEffects = new DistortedEffects();
-
       mRegion = new Static4D(0,0,0,0);
 
-      durations = new long[NUM_FRAMES+1];
-      currDuration = 0;
-
-      for(int i=0; i<NUM_FRAMES+1; i++) durations[i]=0;
-
       // DISTORT
       mReleasedDistortDynamic = new Dynamic3D(NUM_VECTORS*500, 0.5f);
       mReleasedDistortDynamic.setMode(Dynamic3D.MODE_PATH);
@@ -165,6 +129,7 @@ class DeformRenderer implements GLSurfaceView.Renderer
       mMovingShearDynamic.add(vShear[0]);
 
       mScreen = new DistortedScreen(mView);
+      Distorted.setDebug(Distorted.DEBUG_FPS);
       }
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
@@ -186,16 +151,7 @@ class DeformRenderer implements GLSurfaceView.Renderer
    
    public void onDrawFrame(GL10 glUnused)
      {
-     mPaint.setColor(0xffffffff);
-     fpsCanvas.drawRect(0, 0, fpsW, fpsH, mPaint);
-     mPaint.setColor(0xff000000);
-     fpsCanvas.drawText(fpsString, fpsW/2, 0.75f*fpsH, mPaint);
-     fpsTexture.setTexture(fpsBitmap);
-
-     long time = System.currentTimeMillis();
-
-     mScreen.render(time);
-     computeFPS(time);
+     mScreen.render(System.currentTimeMillis());
      }
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
@@ -217,15 +173,16 @@ class DeformRenderer implements GLSurfaceView.Renderer
      Bitmap stretchBitmap = Bitmap.createBitmap(w,h, Bitmap.Config.ARGB_8888);
      stretchCanvas = new Canvas(stretchBitmap);
 
-     mPaint.setColor(0xff008800);
-     mPaint.setStyle(Style.FILL);
-     stretchCanvas.drawRect(0, 0, w, h, mPaint);
-     mPaint.setColor(0xffffffff);
+     Paint paint = new Paint();
+     paint.setColor(0xff008800);
+     paint.setStyle(Style.FILL);
+     stretchCanvas.drawRect(0, 0, w, h, paint);
+     paint.setColor(0xffffffff);
 
      for(int i=0; i<=NUM_LINES ; i++ )
        {
-       stretchCanvas.drawRect(w*i/NUM_LINES - 1,                 0,  w*i/NUM_LINES + 1,  h                , mPaint);
-       stretchCanvas.drawRect(                0, h *i/NUM_LINES -1,  w                ,  h*i/NUM_LINES + 1, mPaint);
+       stretchCanvas.drawRect(w*i/NUM_LINES - 1,                 0,  w*i/NUM_LINES + 1,  h                , paint);
+       stretchCanvas.drawRect(                0, h *i/NUM_LINES -1,  w                ,  h*i/NUM_LINES + 1, paint);
        }
 
      touchPoint= new Static3D(0,0,0);
@@ -238,7 +195,6 @@ class DeformRenderer implements GLSurfaceView.Renderer
 
      mScreen.detachAll();
      mScreen.attach(stretchTexture,stretchEffects,stretchMesh);
-     mScreen.attach(fpsTexture,fpsEffects,fpsMesh);
 
      mScreen.resize(width, height);
      }
@@ -336,21 +292,4 @@ class DeformRenderer implements GLSurfaceView.Renderer
                      break;
        }
      }
-
-///////////////////////////////////////////////////////////////////////////////////////////////////
-
-   private void computeFPS(long currentTime)
-     {
-     if( lastTime!=0 )
-       {
-       currDuration++;
-       if( currDuration>=NUM_FRAMES ) currDuration = 0;
-       durations[NUM_FRAMES] += ((currentTime-lastTime)-durations[currDuration]);
-       durations[currDuration] = currentTime-lastTime;
-
-       fpsString = "" + ((int)(10000.0f*NUM_FRAMES/durations[NUM_FRAMES]))/10.0f;
-       }
-      
-     lastTime = currentTime;
-     }
    }
diff --git a/src/main/java/org/distorted/examples/multiblur/MultiblurRenderer.java b/src/main/java/org/distorted/examples/multiblur/MultiblurRenderer.java
index d9458f0..0a72c87 100644
--- a/src/main/java/org/distorted/examples/multiblur/MultiblurRenderer.java
+++ b/src/main/java/org/distorted/examples/multiblur/MultiblurRenderer.java
@@ -21,8 +21,6 @@ package org.distorted.examples.multiblur;
 
 import android.graphics.Bitmap;
 import android.graphics.BitmapFactory;
-import android.graphics.Canvas;
-import android.graphics.Paint;
 import android.opengl.GLSurfaceView;
 
 import org.distorted.examples.R;
@@ -36,7 +34,6 @@ import org.distorted.library.EffectNames;
 import org.distorted.library.EffectQuality;
 import org.distorted.library.EffectTypes;
 import org.distorted.library.MeshCubes;
-import org.distorted.library.MeshFlat;
 import org.distorted.library.type.Dynamic1D;
 import org.distorted.library.type.Dynamic3D;
 import org.distorted.library.type.DynamicQuat;
@@ -54,8 +51,6 @@ import javax.microedition.khronos.opengles.GL10;
 
 class MultiblurRenderer implements GLSurfaceView.Renderer
 {
-    private static final int NUM_FRAMES  = 100;
-
     private static final int[] MOVE_VEC =
         {
         +1,+1,+1,
@@ -88,18 +83,6 @@ class MultiblurRenderer implements GLSurfaceView.Renderer
     Static4D mQuat1, mQuat2;
     int mScreenMin;
 
-    // FPS
-    private DistortedTexture fpsTexture;
-    private DistortedEffects fpsEffects;
-    private Canvas fpsCanvas;
-    private Bitmap fpsBitmap;
-    private Paint mPaint;
-    private int fpsH, fpsW;
-    private String fpsString = "";
-    private long lastTime=0;
-    private long[] durations;
-    private int currDuration;
-
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
     MultiblurRenderer(GLSurfaceView v)
@@ -107,25 +90,6 @@ class MultiblurRenderer implements GLSurfaceView.Renderer
       mView = v;
       mDistance = -1;
 
-      fpsW = 120;
-      fpsH =  70;
-
-      fpsTexture = new DistortedTexture(fpsW,fpsH);
-      fpsBitmap = Bitmap.createBitmap(fpsW,fpsH, Bitmap.Config.ARGB_8888);
-      fpsTexture.setTexture(fpsBitmap);
-      fpsCanvas = new Canvas(fpsBitmap);
-      fpsEffects = new DistortedEffects();
-      fpsEffects.move( new Static3D(5,5,0) );
-      durations = new long[NUM_FRAMES+1];
-      currDuration = 0;
-
-      mPaint = new Paint();
-      mPaint.setAntiAlias(true);
-      mPaint.setTextAlign(Paint.Align.CENTER);
-      mPaint.setTextSize(0.7f*fpsH);
-
-      for(int i=0; i<NUM_FRAMES+1; i++) durations[i]=0;
-
       mBlurStatus = new boolean[NUM_OBJECTS];
       mMoveDynamic= new Dynamic3D[NUM_OBJECTS];
       mMoveVector = new Static3D[NUM_OBJECTS];
@@ -170,10 +134,10 @@ class MultiblurRenderer implements GLSurfaceView.Renderer
         mScreen.attach(mNode[i]);
         }
 
-      mScreen.attach(fpsTexture,fpsEffects,new MeshFlat(1,1));
-
       mBlurStatus[0] = true;
       mNode[0].setPostprocessEffects(mPostEffects);
+
+      Distorted.setDebug(Distorted.DEBUG_FPS);
       }
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
@@ -187,16 +151,7 @@ class MultiblurRenderer implements GLSurfaceView.Renderer
 
     public void onDrawFrame(GL10 glUnused) 
       {
-      mPaint.setColor(0xffffffff);
-      fpsCanvas.drawRect(0, 0, fpsW, fpsH, mPaint);
-      mPaint.setColor(0xff000000);
-      fpsCanvas.drawText(fpsString, fpsW/2, 0.75f*fpsH, mPaint);
-      fpsTexture.setTexture(fpsBitmap);
-
-      long time = System.currentTimeMillis();
-
-      mScreen.render(time);
-      computeFPS(time);
+      mScreen.render(System.currentTimeMillis());
       }
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
@@ -262,23 +217,6 @@ class MultiblurRenderer implements GLSurfaceView.Renderer
         }
       }
 
-///////////////////////////////////////////////////////////////////////////////////////////////////
-
-   private void computeFPS(long currentTime)
-     {
-     if( lastTime!=0 )
-       {
-       currDuration++;
-       if( currDuration>=NUM_FRAMES ) currDuration = 0;
-       durations[NUM_FRAMES] += ((currentTime-lastTime)-durations[currDuration]);
-       durations[currDuration] = currentTime-lastTime;
-
-       fpsString = "" + ((int)(10000.0f*NUM_FRAMES/durations[NUM_FRAMES]))/10.0f;
-       }
-
-     lastTime = currentTime;
-     }
-
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
     private void computeMoveVectors()
