commit d271024d45048513985b764b332f7511070aa739
Author: Leszek Koltunski <leszek@koltunski.pl>
Date:   Mon Mar 25 16:48:44 2019 +0000

    Further improvement for the Generic app.

diff --git a/src/main/java/org/distorted/examples/generic/GenericActivity2.java b/src/main/java/org/distorted/examples/generic/GenericActivity2.java
index 56df217..0ce2f79 100644
--- a/src/main/java/org/distorted/examples/generic/GenericActivity2.java
+++ b/src/main/java/org/distorted/examples/generic/GenericActivity2.java
@@ -315,5 +315,4 @@ public class GenericActivity2 extends AppCompatActivity
     Distorted.onDestroy();
     super.onDestroy();
     }
-
-  }
+  }
\ No newline at end of file
diff --git a/src/main/java/org/distorted/examples/generic/GenericTab.java b/src/main/java/org/distorted/examples/generic/GenericTab.java
index 3dbbe19..43612a5 100644
--- a/src/main/java/org/distorted/examples/generic/GenericTab.java
+++ b/src/main/java/org/distorted/examples/generic/GenericTab.java
@@ -68,10 +68,10 @@ public class GenericTab extends Fragment implements AdapterView.OnItemSelectedLi
 
     int position = args.getInt("position");
 
-    int tab  = GenericViewPager.TABS[GenericViewPager.NUM*position    ];
-    mLayout  = GenericViewPager.TABS[GenericViewPager.NUM*position + 1];
-    mSpinner = GenericViewPager.TABS[GenericViewPager.NUM*position + 2];
-    mType    = EffectType.getType(GenericViewPager.TABS[GenericViewPager.NUM*position + 3]);
+    int tab  = GenericViewPager.TABS[position][0];
+    mLayout  = GenericViewPager.TABS[position][1];
+    mSpinner = GenericViewPager.TABS[position][2];
+    mType    = EffectType.getType(GenericViewPager.TABS[position][3]);
 
     GenericActivity2 act = (GenericActivity2)getActivity();
 
diff --git a/src/main/java/org/distorted/examples/generic/GenericViewPager.java b/src/main/java/org/distorted/examples/generic/GenericViewPager.java
index 4a1d121..0037681 100644
--- a/src/main/java/org/distorted/examples/generic/GenericViewPager.java
+++ b/src/main/java/org/distorted/examples/generic/GenericViewPager.java
@@ -33,20 +33,19 @@ import org.distorted.library.effect.EffectType;
 
 class GenericViewPager
   {
-  static final int[] TABS =
+  static final int[][] TABS =
     {
     // Add here a new row to create another tab serving effects of a given type (you would also need to
     // create a new layout to fill the first 3 values of the row ). Comment out a row to remove the tab.
     //
-    // LAYOUT ////////////  INNER LAYOUT ////////  SPINNER //////////////  EFFECT_TYPE //////////////////// SHOW CENTER // SHOW REGION
-    R.layout.effects3dtab0, R.id.effects3dlayout0, R.id.effects3dspinner0, EffectType.MATRIX     .ordinal() ,            1,          0 ,
-    R.layout.effects3dtab1, R.id.effects3dlayout1, R.id.effects3dspinner1, EffectType.VERTEX     .ordinal() ,            1,          1 ,
-    R.layout.effects3dtab2, R.id.effects3dlayout2, R.id.effects3dspinner2, EffectType.FRAGMENT   .ordinal() ,            1,          0 ,
-    R.layout.effects3dtab3, R.id.effects3dlayout3, R.id.effects3dspinner3, EffectType.POSTPROCESS.ordinal() ,            0,          0
+    ////// LAYOUT ////////////  INNER LAYOUT ////////  SPINNER //////////////  EFFECT_TYPE //////////////////// SHOW CENTER // SHOW REGION
+      { R.layout.effects3dtab0, R.id.effects3dlayout0, R.id.effects3dspinner0, EffectType.MATRIX     .ordinal() ,            1,          0 } ,
+      { R.layout.effects3dtab1, R.id.effects3dlayout1, R.id.effects3dspinner1, EffectType.VERTEX     .ordinal() ,            1,          1 } ,
+      { R.layout.effects3dtab2, R.id.effects3dlayout2, R.id.effects3dspinner2, EffectType.FRAGMENT   .ordinal() ,            1,          0 } ,
+      { R.layout.effects3dtab3, R.id.effects3dlayout3, R.id.effects3dspinner3, EffectType.POSTPROCESS.ordinal() ,            0,          0 }
     };
 
-  static final int NUM = 6;  // 6 ints required to describe 1 tab
-  private static final int NUM_TABS = TABS.length/NUM;
+  private static final int NUM_TABS = TABS.length;
 
   private ViewPager mViewPager;
   private int mCurrentTab;
@@ -63,9 +62,9 @@ class GenericViewPager
       {
       if( position>=0 && position<NUM_TABS )
         {
-        GenericTab tab = new GenericTab();  // no we cannot make tab equal to mTab[position]
-                                            // tabs have to be set through the setTab() method
-        Bundle bundle = new Bundle();       // otherwise it doesn't work on recreation (rotate!)
+        GenericTab tab = new GenericTab();
+
+        Bundle bundle = new Bundle();
         bundle.putInt("position", position);
         tab.setArguments(bundle);
 
@@ -84,7 +83,7 @@ class GenericViewPager
     @Override
     public CharSequence getPageTitle(int position)
       {
-      int ordinal = TABS[position*NUM + 3];
+      int ordinal = TABS[position][3];
       return EffectType.getType(ordinal).name();
       }
     }
@@ -105,8 +104,8 @@ class GenericViewPager
 
   void showRegionAndCenter(boolean showR, boolean showC, GenericSurfaceView sv)
     {
-    boolean localShowC = (TABS[NUM*mCurrentTab + 4] == 1);
-    boolean localShowR = (TABS[NUM*mCurrentTab + 5] == 1);
+    boolean localShowC = (TABS[mCurrentTab][4] == 1);
+    boolean localShowR = (TABS[mCurrentTab][5] == 1);
 
     sv.getRenderer().showRegionAndCenter( (showR&&localShowR) , (showC&&localShowC) );
     }
@@ -122,11 +121,11 @@ class GenericViewPager
 
   void setCurrentTab(EffectType type)
     {
-    for(int i=0; i<NUM_TABS; i++)
+    for(int tab=0; tab<NUM_TABS; tab++)
       {
-      if( TABS[i*NUM + 3] == type.ordinal() )
+      if( TABS[tab][3] == type.ordinal() )
         {
-        mCurrentTab = i;
+        mCurrentTab = tab;
         break;
         }
       }
