commit 2878c5542a7b0be24742cf9fd731138f757bc1ef
Author: leszek <leszek@koltunski.pl>
Date:   Tue Feb 14 22:36:35 2017 +0000

    - workaround for the issue with flashing in StarWars
    - return number of objects rendered from OutputSurface.render() and use this in Olympic
    - rework tree isomorphism so that it now works even if we don't render the whole tree (and also we don't have to reset() the Tree anymore!)
    - current a buf with tree isomorphism: Leaf Nodes have the same NodeData only if they agree in Surface AND Effects!

diff --git a/src/main/java/org/distorted/examples/olimpic/OlimpicRenderer.java b/src/main/java/org/distorted/examples/olimpic/OlimpicRenderer.java
index 5daa943..3cc2a51 100644
--- a/src/main/java/org/distorted/examples/olimpic/OlimpicRenderer.java
+++ b/src/main/java/org/distorted/examples/olimpic/OlimpicRenderer.java
@@ -56,6 +56,7 @@ class OlimpicRenderer implements GLSurfaceView.Renderer
    private DistortedTexture mLeaf;
    private DistortedScreen mScreen;
    private int mScreenW, mScreenH;
+   private int mPrevRendered, mCurrRendered;
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
@@ -63,6 +64,9 @@ class OlimpicRenderer implements GLSurfaceView.Renderer
       {     
       mView = v;
 
+      mPrevRendered = 0;
+      mCurrRendered = 0;
+
       mLeaf = new DistortedTexture(LEAF_SIZE,LEAF_SIZE);
       MeshFlat mesh = new MeshFlat(1,1);
       DistortedEffects effects = new DistortedEffects();
@@ -121,7 +125,13 @@ class OlimpicRenderer implements GLSurfaceView.Renderer
     public void onDrawFrame(GL10 glUnused) 
       {
       GLES30.glClear( GLES30.GL_DEPTH_BUFFER_BIT | GLES30.GL_COLOR_BUFFER_BIT);
-      mScreen.render(System.currentTimeMillis());
+      mCurrRendered = mScreen.render(System.currentTimeMillis());
+
+      if( mCurrRendered!=mPrevRendered )
+        {
+        mPrevRendered = mCurrRendered;
+        android.util.Log.d("Olympic", "rendered: "+mCurrRendered+" objects");
+        }
       }
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
diff --git a/src/main/java/org/distorted/examples/starwars/StarWarsRenderer.java b/src/main/java/org/distorted/examples/starwars/StarWarsRenderer.java
index 9994303..12c5cd8 100644
--- a/src/main/java/org/distorted/examples/starwars/StarWarsRenderer.java
+++ b/src/main/java/org/distorted/examples/starwars/StarWarsRenderer.java
@@ -374,7 +374,6 @@ class StarWarsRenderer implements GLSurfaceView.Renderer, EffectListener
       if( objectID == gffaID )
         {
         mScreen.detach(mGFFAEffects);
-        mGFFAEffects.abortAllEffects();
         mGFFATexture.markForDeletion();
 
         int screenW=mScreen.getWidth();
@@ -400,7 +399,6 @@ class StarWarsRenderer implements GLSurfaceView.Renderer, EffectListener
       else if( objectID==logoID )
         {
         mScreen.detach(mLogoEffects);
-        mLogoEffects.abortAllEffects();
         mLogoTexture.markForDeletion();
         
         int crawlW = mCrawlTexture.getWidth();
@@ -433,7 +431,6 @@ class StarWarsRenderer implements GLSurfaceView.Renderer, EffectListener
         {
         mScreen.detach(mBackground);
         mBackground.detach(mCrawlEffects);
-        mCrawlEffects.abortAllEffects();
         mCrawlTexture.markForDeletion();
         mCrawlBackgroundEffects.abortAllEffects();
         mCrawlBackgroundTexture.markForDeletion();
