commit 77e66c583bf2e8f8302acd4756565bf66f8ca412
Author: Leszek Koltunski <leszek@koltunski.pl>
Date:   Fri Jun 9 00:31:44 2023 +0200

    in API 34 R.id. things are no loger constants and cannot be used in switches.

diff --git a/src/main/java/org/distorted/examples/TableOfContents.java b/src/main/java/org/distorted/examples/TableOfContents.java
index ff68db9..0eb381f 100644
--- a/src/main/java/org/distorted/examples/TableOfContents.java
+++ b/src/main/java/org/distorted/examples/TableOfContents.java
@@ -89,6 +89,7 @@ public class TableOfContents extends ListActivity
 
   private enum Application
     {
+    MESHFILE          (R.drawable.icon_example_meshfile        , R.string.example_meshfile           , R.string.example_meshfile_subtitle           ,            MeshFileActivity.class),
     MONALISA          (R.drawable.icon_example_monalisa        , R.string.example_monalisa        , R.string.example_monalisa_subtitle        ,         MonaLisaActivity.class),
     SINK              (R.drawable.icon_example_sink            , R.string.example_sink            , R.string.example_sink_subtitle            ,             SinkActivity.class),
     BEAN              (R.drawable.icon_example_bean            , R.string.example_bean            , R.string.example_bean_subtitle            ,             BeanActivity.class),
@@ -129,7 +130,6 @@ public class TableOfContents extends ListActivity
     PREDEFORM         (R.drawable.icon_example_predeform       , R.string.example_predeform           , R.string.example_predeform_subtitle           ,            PredeformActivity.class),
     DEFERREDJOB       (R.drawable.icon_example_deferredjob     , R.string.example_deferredjob           , R.string.example_deferredjob_subtitle           ,            DeferredJobActivity.class),
     SINGLEMESH        (R.drawable.icon_example_singlemesh      , R.string.example_singlemesh           , R.string.example_singlemesh_subtitle           ,            SingleMeshActivity.class),
-    MESHFILE          (R.drawable.icon_example_meshfile        , R.string.example_meshfile           , R.string.example_meshfile_subtitle           ,            MeshFileActivity.class),
     FLATBLUR2         (R.drawable.icon_example_flatblur        , R.string.example_flatblur         , R.string.example_flatblur_subtitle         , FlatBlur2Activity.class ),
     POLYMESH          (R.drawable.icon_example_wip             , R.string.example_polymesh         , R.string.example_polymesh_subtitle         , PolymeshActivity.class ),
     ;
diff --git a/src/main/java/org/distorted/examples/blur/BlurActivity.java b/src/main/java/org/distorted/examples/blur/BlurActivity.java
index 4eca822..60d8c14 100644
--- a/src/main/java/org/distorted/examples/blur/BlurActivity.java
+++ b/src/main/java/org/distorted/examples/blur/BlurActivity.java
@@ -96,19 +96,24 @@ public class BlurActivity extends Activity  implements OnSeekBarChangeListener
     
     public void onProgressChanged(SeekBar bar, int progress, boolean fromUser) 
       {
-      BlurSurfaceView view = findViewById(R.id.blurSurfaceView);
+      BlurSurfaceView v = findViewById(R.id.blurSurfaceView);
+      BlurRenderer r = v.getRenderer();
+      int id = bar.getId();
 
-      switch( bar.getId() )
+      if( id == R.id.blurSeek )
         {
-        case R.id.blurSeek: int l1 = view.getRenderer().setBlur(progress);
-                            textBlur.setText(getString(R.string.blur_placeholder,l1));
-                            break;
-        case R.id.haloSeek: int l2 = view.getRenderer().setHalo(progress);
-                            textHalo.setText(getString(R.string.halo_placeholder,l2));
-                            break;
-        case R.id.moveSeek: int l3 = view.getRenderer().setMove(progress);
-                            textMove.setText(getString(R.string.move_placeholder,l3));
-                            break;
+        int l = r.setBlur(progress);
+        textBlur.setText(getString(R.string.blur_placeholder,l));
+        }
+      if( id == R.id.haloSeek )
+        {
+        int l = r.setHalo(progress);
+        textHalo.setText(getString(R.string.halo_placeholder,l));
+        }
+      if( id == R.id.moveSeek )
+        {
+        int l = r.setMove(progress);
+        textMove.setText(getString(R.string.move_placeholder,l));
         }
       }
 
diff --git a/src/main/java/org/distorted/examples/deferredjob/DeferredJobActivity.java b/src/main/java/org/distorted/examples/deferredjob/DeferredJobActivity.java
index 02d37d7..a55e718 100644
--- a/src/main/java/org/distorted/examples/deferredjob/DeferredJobActivity.java
+++ b/src/main/java/org/distorted/examples/deferredjob/DeferredJobActivity.java
@@ -76,12 +76,10 @@ public class DeferredJobActivity extends Activity
       {
       Button butt = (Button)view;
       int id = butt.getId();
-      DeferredJobSurfaceView sView = findViewById(R.id.deferredjobSurfaceView);
+      DeferredJobSurfaceView v = findViewById(R.id.deferredjobSurfaceView);
+      DeferredJobRenderer r = v.getRenderer();
 
-      switch(id)
-        {
-        case R.id.deferredjobButton0 : sView.getRenderer().apply(0); break;
-        case R.id.deferredjobButton1 : sView.getRenderer().apply(1); break;
-        }
+      if( id == R.id.deferredjobButton0 ) r.apply(0);
+      if( id == R.id.deferredjobButton1 ) r.apply(1);
       }
 }
diff --git a/src/main/java/org/distorted/examples/dynamic/DynamicActivity.java b/src/main/java/org/distorted/examples/dynamic/DynamicActivity.java
index bca8763..213dd9c 100644
--- a/src/main/java/org/distorted/examples/dynamic/DynamicActivity.java
+++ b/src/main/java/org/distorted/examples/dynamic/DynamicActivity.java
@@ -333,13 +333,10 @@ public class DynamicActivity extends Activity implements OnSeekBarChangeListener
         }
       else
         {
-        switch(id)
-          {
-          case R.id.dynamicSeekNoise0  : mNoise0 = progress; break;
-          case R.id.dynamicSeekNoise1  : mNoise1 = progress; break;
-          case R.id.dynamicSeekNoise2  : mNoise2 = progress; break;
-          case R.id.dynamicSeekNoise3  : mNoise3 = progress; break;
-          }
+             if( id == R.id.dynamicSeekNoise0 ) mNoise0 = progress;
+        else if( id == R.id.dynamicSeekNoise1 ) mNoise1 = progress;
+        else if( id == R.id.dynamicSeekNoise2 ) mNoise2 = progress;
+        else if( id == R.id.dynamicSeekNoise3 ) mNoise3 = progress;
 
         float n0 = mNoise0/100.f;
         float n1 = mNoise1/100.f;
diff --git a/src/main/java/org/distorted/examples/effectqueue/EffectQueueActivity.java b/src/main/java/org/distorted/examples/effectqueue/EffectQueueActivity.java
index e3dbc37..1da7370 100644
--- a/src/main/java/org/distorted/examples/effectqueue/EffectQueueActivity.java
+++ b/src/main/java/org/distorted/examples/effectqueue/EffectQueueActivity.java
@@ -62,7 +62,7 @@ public class EffectQueueActivity extends Activity implements AdapterView.OnItemS
       }
     }
 
-  private ArrayList<EffectRow> mList = new ArrayList<>();
+  private final ArrayList<EffectRow> mList = new ArrayList<>();
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
@@ -158,14 +158,16 @@ public class EffectQueueActivity extends Activity implements AdapterView.OnItemS
 
   public void onItemSelected(AdapterView<?> parent, View view, int pos, long id)
     {
-    switch(parent.getId())
+    int pid = parent.getId();
+
+    if( pid == R.id.effects2d_spinnerAdd  )
       {
-      case R.id.effects2d_spinnerAdd : EffectQueueSurfaceView v = findViewById(R.id.effects2dSurfaceView);
-                                       v.setEffect(pos); break;
-      case R.id.effects2d_spinnerID  : mPosID   = pos; break;
-      case R.id.effects2d_spinnerName: mPosName = pos; break;
-      case R.id.effects2d_spinnerType: mPosType = pos; break;
+      EffectQueueSurfaceView v = findViewById(R.id.effects2dSurfaceView);
+      v.setEffect(pos);
       }
+    if( pid == R.id.effects2d_spinnerID   ) mPosID   = pos;
+    if( pid == R.id.effects2d_spinnerName ) mPosName = pos;
+    if( pid == R.id.effects2d_spinnerType ) mPosType = pos;
     }
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
diff --git a/src/main/java/org/distorted/examples/flag/FlagActivity.java b/src/main/java/org/distorted/examples/flag/FlagActivity.java
index 57cc550..11b0999 100644
--- a/src/main/java/org/distorted/examples/flag/FlagActivity.java
+++ b/src/main/java/org/distorted/examples/flag/FlagActivity.java
@@ -142,43 +142,58 @@ public class FlagActivity extends Activity implements SeekBar.OnSeekBarChangeLis
       FlagSurfaceView mView = findViewById(R.id.flagSurfaceView);
       FlagRenderer renderer = mView.getRenderer();
 
-      switch (bar.getId())
+      int id = bar.getId();
+
+      if( id== R.id.flagSeekAmplitude )
+        {
+        renderer.setAmplitude(progress);
+        textAmplitude.setText(getString(R.string.amplitude_placeholder,progress));
+        }
+      if( id == R.id.flagSeekNoiseAmplitude )
+        {
+        mNoise.set0((float)progress/100);
+        renderer.setNoise(mNoise);
+        convert(progress);
+        textNoiseAmplitude.setText(getString(R.string.noise_placeholder,mStr));
+        }
+      if( id == R.id.flagSeekLength )
+        {
+        progress = progress*2;
+        renderer.setLength(progress);
+        textLength.setText(getString(R.string.length_placeholder,progress));
+        }
+      if( id == R.id.flagSeekNoiseLength )
+        {
+        mNoise.set1((float)progress/100);
+        renderer.setNoise(mNoise);
+        convert(progress);
+        textNoiseLength.setText(getString(R.string.noise_placeholder,mStr));
+        }
+      if( id == R.id.flagSeekAngleA )
+        {
+        progress = (360*progress)/100;
+        renderer.setAngleA(progress);
+        textAngleA.setText(getString(R.string.alpha_placeholder,progress));
+        }
+      if( id == R.id.flagSeekNoiseAngleA )
+        {
+        mNoise.set3((float)progress/100);
+        renderer.setNoise(mNoise);
+        convert(progress);
+        textNoiseAngleA.setText(getString(R.string.noise_placeholder,mStr));
+        }
+      if( id == R.id.flagSeekAngleB )
+        {
+        progress = ((360*progress)/100);
+        renderer.setAngleB(progress);
+        textAngleB.setText(getString(R.string.beta_placeholder,progress));
+        }
+      if( id == R.id.flagSeekNoiseAngleB )
         {
-        case R.id.flagSeekAmplitude     : renderer.setAmplitude(progress);
-                                          textAmplitude.setText(getString(R.string.amplitude_placeholder,progress));
-                                          break;
-        case R.id.flagSeekNoiseAmplitude: mNoise.set0((float)progress/100);
-                                          renderer.setNoise(mNoise);
-                                          convert(progress);
-                                          textNoiseAmplitude.setText(getString(R.string.noise_placeholder,mStr));
-                                          break;
-        case R.id.flagSeekLength        : progress = progress*2;
-                                          renderer.setLength(progress);
-                                          textLength.setText(getString(R.string.length_placeholder,progress));
-                                          break;
-        case R.id.flagSeekNoiseLength   : mNoise.set1((float)progress/100);
-                                          renderer.setNoise(mNoise);
-                                          convert(progress);
-                                          textNoiseLength.setText(getString(R.string.noise_placeholder,mStr));
-                                          break;
-        case R.id.flagSeekAngleA        : progress = (360*progress)/100;
-                                          renderer.setAngleA(progress);
-                                          textAngleA.setText(getString(R.string.alpha_placeholder,progress));
-                                          break;
-        case R.id.flagSeekNoiseAngleA   : mNoise.set3((float)progress/100);
-                                          renderer.setNoise(mNoise);
-                                          convert(progress);
-                                          textNoiseAngleA.setText(getString(R.string.noise_placeholder,mStr));
-                                          break;
-        case R.id.flagSeekAngleB        : progress = ((360*progress)/100);
-                                          renderer.setAngleB(progress);
-                                          textAngleB.setText(getString(R.string.beta_placeholder,progress));
-                                          break;
-        case R.id.flagSeekNoiseAngleB   : mNoise.set4((float)progress/100);
-                                          renderer.setNoise(mNoise);
-                                          convert(progress);
-                                          textNoiseAngleB.setText(getString(R.string.noise_placeholder,mStr));
-                                          break;
+        mNoise.set4((float)progress/100);
+        renderer.setNoise(mNoise);
+        convert(progress);
+        textNoiseAngleB.setText(getString(R.string.noise_placeholder,mStr));
         }
       }
 
diff --git a/src/main/java/org/distorted/examples/generic/GenericActivity.java b/src/main/java/org/distorted/examples/generic/GenericActivity.java
index f25d1a5..e09fe90 100644
--- a/src/main/java/org/distorted/examples/generic/GenericActivity.java
+++ b/src/main/java/org/distorted/examples/generic/GenericActivity.java
@@ -235,32 +235,33 @@ public class GenericActivity extends Activity
 
   public void onItemSelected(AdapterView<?> parent, View view, int pos, long id)
     {
-    switch(parent.getId())
+    int pid = parent.getId();
+
+    if( pid == R.id.objectpicker_spinnerType )
       {
-      case R.id.objectpicker_spinnerType  : if( mObjectType!=pos )
-                                              {
-                                              mObjectType = pos;
-                                              uncheckAll();
-
-                                              int dim = GenericMeshList.getDimension(mObjectType);
-
-                                              mRowsPicker.setEnabled(dim>=1);
-                                              mColsPicker.setEnabled(dim>=2);
-                                              mSlicPicker.setEnabled(dim>=3);
-                                              }
-                                            break;
-      case R.id.objectpicker_spinnerBitmap: switch(pos)
-                                              {
-                                              case 0: mBitmapID = -1            ; break;
-                                              case 1: mBitmapID = R.raw.face    ; break;
-                                              case 2: mBitmapID = R.raw.dog     ; break;
-                                              case 3: mBitmapID = R.raw.cat     ; break;
-                                              case 4: mBitmapID = R.raw.grid    ; break;
-                                              case 5: mBitmapID = R.raw.bean    ; break;
-                                              case 6: mBitmapID = R.raw.monalisa; break;
-                                              case 7: mBitmapID = R.raw.world   ; break;
-                                              }
-                                            break;
+      if( mObjectType!=pos )
+        {
+        mObjectType = pos;
+        uncheckAll();
+        int dim = GenericMeshList.getDimension(mObjectType);
+        mRowsPicker.setEnabled(dim>=1);
+        mColsPicker.setEnabled(dim>=2);
+        mSlicPicker.setEnabled(dim>=3);
+        }
+      }
+    if( pid ==R.id.objectpicker_spinnerBitmap )
+      {
+      switch(pos)
+        {
+        case 0: mBitmapID = -1            ; break;
+        case 1: mBitmapID = R.raw.face    ; break;
+        case 2: mBitmapID = R.raw.dog     ; break;
+        case 3: mBitmapID = R.raw.cat     ; break;
+        case 4: mBitmapID = R.raw.grid    ; break;
+        case 5: mBitmapID = R.raw.bean    ; break;
+        case 6: mBitmapID = R.raw.monalisa; break;
+        case 7: mBitmapID = R.raw.world   ; break;
+        }
       }
     }
 
diff --git a/src/main/java/org/distorted/examples/generic/GenericTab.java b/src/main/java/org/distorted/examples/generic/GenericTab.java
index 1827904..8466212 100644
--- a/src/main/java/org/distorted/examples/generic/GenericTab.java
+++ b/src/main/java/org/distorted/examples/generic/GenericTab.java
@@ -119,17 +119,16 @@ public class GenericTab extends Fragment implements AdapterView.OnItemSelectedLi
   @Override
   public void onClick(View v)
     {
-    switch (v.getId())
-      {
-      case R.id.effects3dButtonAdd   : newEffect(); break;
-      case R.id.effects3dButtonRemove: removeAll(); break;
-      case R.id.button0dRemove       :
-      case R.id.button1dRemove       :
-      case R.id.button2dRemove       :
-      case R.id.button3dRemove       :
-      case R.id.button4dRemove       :
-      case R.id.button5dRemove       : remove(v)  ; break;
-      }
+    int id = v.getId();
+
+    if( id == R.id.effects3dButtonAdd    ) newEffect();
+    if( id == R.id.effects3dButtonRemove ) removeAll();
+    if( id == R.id.button0dRemove ||
+        id == R.id.button1dRemove ||
+        id == R.id.button2dRemove ||
+        id == R.id.button3dRemove ||
+        id == R.id.button4dRemove ||
+        id == R.id.button5dRemove  ) remove(v);
     }
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
diff --git a/src/main/java/org/distorted/examples/girl/GirlActivity.java b/src/main/java/org/distorted/examples/girl/GirlActivity.java
index 8d09864..f87a1f3 100644
--- a/src/main/java/org/distorted/examples/girl/GirlActivity.java
+++ b/src/main/java/org/distorted/examples/girl/GirlActivity.java
@@ -99,25 +99,26 @@ public class GirlActivity extends Activity  implements OnSeekBarChangeListener
 
     public void onProgressChanged(SeekBar bar, int progress, boolean fromUser) 
       {
-      float v;
-      int i;
       GirlSurfaceView view = findViewById(R.id.girlSurfaceView);
+      int id = bar.getId();
 
-      switch (bar.getId()) 
+      if( id == R.id.girlSeekSwing )
         {
-        case R.id.girlSeekSwing: v = progress/(5*400.0f);
-                                 view.getRenderer().setSwing(v);
-                                 textSwing.setText(getString(R.string.swing_placeholder,v));
-                                 break;
-        case R.id.girlSeekSize : if( progress> 50) v = (progress-50)/18.0f + 1.0f;
-                                 else              v = 0.015f*progress + 0.25f;
-                                 view.getRenderer().setSize(v);
-                                 textSize.setText(getString(R.string.size_placeholder,v));
-                                 break;
-        case R.id.girlSeekHips : i = progress/6;
-                                 view.getRenderer().setHips(i);
-                                 textHips.setText(getString(R.string.hips_placeholder,i));
-                                 break;
+        float v = progress/(5*400.0f);
+        view.getRenderer().setSwing(v);
+        textSwing.setText(getString(R.string.swing_placeholder,v));
+        }
+      if( id == R.id.girlSeekSize )
+        {
+        float v = progress> 50 ? ((progress-50)/18.0f + 1.0f) : (0.015f*progress + 0.25f);
+        view.getRenderer().setSize(v);
+        textSize.setText(getString(R.string.size_placeholder,v));
+        }
+      if( id == R.id.girlSeekHips )
+        {
+        int i = progress/6;
+        view.getRenderer().setHips(i);
+        textHips.setText(getString(R.string.hips_placeholder,i));
         }
       }
 
diff --git a/src/main/java/org/distorted/examples/glow/GlowActivity.java b/src/main/java/org/distorted/examples/glow/GlowActivity.java
index d2e8ea9..f1ff484 100644
--- a/src/main/java/org/distorted/examples/glow/GlowActivity.java
+++ b/src/main/java/org/distorted/examples/glow/GlowActivity.java
@@ -122,16 +122,20 @@ public class GlowActivity extends Activity implements SeekBar.OnSeekBarChangeLis
 
     public void onProgressChanged(SeekBar bar, int progress, boolean fromUser)
       {
-      GlowSurfaceView view = findViewById(R.id.glowSurfaceView);
+      GlowSurfaceView v = findViewById(R.id.glowSurfaceView);
+      GlowRenderer r = v.getRenderer();
 
-      switch (bar.getId())
+      int id = bar.getId();
+
+      if( id == R.id.glowSeekRadius )
+        {
+        int radius = r.setGlowRadius(progress);
+        textRadius.setText(getString(R.string.glow_radius_placeholder,radius));
+        }
+      if( id == R.id.glowSeekAlpha )
         {
-        case R.id.glowSeekRadius: int radius = view.getRenderer().setGlowRadius(progress);
-                                  textRadius.setText(getString(R.string.glow_radius_placeholder,radius));
-                                  break;
-        case R.id.glowSeekAlpha : float alpha = view.getRenderer().setGlowAlpha(progress);
-                                  textAlpha.setText(getString(R.string.glow_alpha_placeholder, alpha));
-                                  break;
+        float alpha = r.setGlowAlpha(progress);
+        textAlpha.setText(getString(R.string.glow_alpha_placeholder, alpha));
         }
       }
 
diff --git a/src/main/java/org/distorted/examples/inflate/InflateActivity.java b/src/main/java/org/distorted/examples/inflate/InflateActivity.java
index ae6dfe2..44907bb 100644
--- a/src/main/java/org/distorted/examples/inflate/InflateActivity.java
+++ b/src/main/java/org/distorted/examples/inflate/InflateActivity.java
@@ -235,32 +235,35 @@ public class InflateActivity extends Activity
 
   public void onItemSelected(AdapterView<?> parent, View view, int pos, long id)
     {
-    switch(parent.getId())
+    int pid = parent.getId();
+
+    if( pid == R.id.objectpicker_spinnerType )
       {
-      case R.id.objectpicker_spinnerType  : if( mObjectType!=pos )
-                                              {
-                                              mObjectType = pos;
-                                              uncheckAll();
-
-                                              int dim = InflateMeshList.getDimension(mObjectType);
-
-                                              mRowsPicker.setEnabled(dim>=1);
-                                              mColsPicker.setEnabled(dim>=2);
-                                              mSlicPicker.setEnabled(dim>=3);
-                                              }
-                                            break;
-      case R.id.objectpicker_spinnerBitmap: switch(pos)
-                                              {
-                                              case 0: mBitmapID = -1            ; break;
-                                              case 1: mBitmapID = R.raw.face    ; break;
-                                              case 2: mBitmapID = R.raw.dog     ; break;
-                                              case 3: mBitmapID = R.raw.cat     ; break;
-                                              case 4: mBitmapID = R.raw.grid    ; break;
-                                              case 5: mBitmapID = R.raw.bean    ; break;
-                                              case 6: mBitmapID = R.raw.monalisa; break;
-                                              case 7: mBitmapID = R.raw.world   ; break;
-                                              }
-                                            break;
+      if( mObjectType!=pos )
+        {
+        mObjectType = pos;
+        uncheckAll();
+
+        int dim = InflateMeshList.getDimension(mObjectType);
+
+        mRowsPicker.setEnabled(dim>=1);
+        mColsPicker.setEnabled(dim>=2);
+        mSlicPicker.setEnabled(dim>=3);
+        }
+      }
+    if( pid == R.id.objectpicker_spinnerBitmap )
+      {
+      switch(pos)
+        {
+        case 0: mBitmapID = -1            ; break;
+        case 1: mBitmapID = R.raw.face    ; break;
+        case 2: mBitmapID = R.raw.dog     ; break;
+        case 3: mBitmapID = R.raw.cat     ; break;
+        case 4: mBitmapID = R.raw.grid    ; break;
+        case 5: mBitmapID = R.raw.bean    ; break;
+        case 6: mBitmapID = R.raw.monalisa; break;
+        case 7: mBitmapID = R.raw.world   ; break;
+        }
       }
     }
 
diff --git a/src/main/java/org/distorted/examples/inflate/InflateActivity2.java b/src/main/java/org/distorted/examples/inflate/InflateActivity2.java
index 12fcc2e..ae2e496 100644
--- a/src/main/java/org/distorted/examples/inflate/InflateActivity2.java
+++ b/src/main/java/org/distorted/examples/inflate/InflateActivity2.java
@@ -212,15 +212,17 @@ public class InflateActivity2 extends Activity implements SeekBar.OnSeekBarChang
 
     public void onProgressChanged(SeekBar bar, int progress, boolean fromUser)
       {
-      switch (bar.getId())
+      int id = bar.getId();
+      InflateSurfaceView v = findViewById(R.id.inflateSurfaceView);
+
+      if( id == R.id.inflateTransparency )
+        {
+        v.getRenderer().setTransparency(progress);
+        }
+      if( id == R.id.inflateInflateLevel )
         {
-        case R.id.inflateTransparency: InflateSurfaceView v1 = this.findViewById(R.id.inflateSurfaceView);
-                                       v1.getRenderer().setTransparency(progress);
-                                       break;
-        case R.id.inflateInflateLevel: InflateSurfaceView v2 = this.findViewById(R.id.inflateSurfaceView);
-                                       float level = v2.getRenderer().setLevel(progress);
-                                       mTextLevel.setText(getString(R.string.inflate_placeholder, level));
-                                       break;
+        float level = v.getRenderer().setLevel(progress);
+        mTextLevel.setText(getString(R.string.inflate_placeholder, level));
         }
       }
 
diff --git a/src/main/java/org/distorted/examples/meshfile/MeshFileActivity.java b/src/main/java/org/distorted/examples/meshfile/MeshFileActivity.java
index 109ee8f..0ad3430 100644
--- a/src/main/java/org/distorted/examples/meshfile/MeshFileActivity.java
+++ b/src/main/java/org/distorted/examples/meshfile/MeshFileActivity.java
@@ -46,8 +46,8 @@ public class MeshFileActivity extends Activity implements AdapterView.OnItemSele
 
     private LinearLayout mLayout;
     private int mResource;
-    private String[] mNames = new String[] { "procedural" ,
-                                             "polygon"    ,
+    private String[] mNames = new String[] { "polygon"    ,
+                                             "procedural" ,
                                              "deferredjob",
                                              "meshjoin"   ,
                                              "predeform"  ,
@@ -187,8 +187,8 @@ public class MeshFileActivity extends Activity implements AdapterView.OnItemSele
         {
         switch(pos)
           {
-          case  0: mResource = PROCEDURAL       ; break;
-          case  1: mResource = POLYGON          ; break;
+          case  0: mResource = POLYGON          ; break;
+          case  1: mResource = PROCEDURAL       ; break;
           case  2: mResource = R.raw.deferredjob; break;
           case  3: mResource = R.raw.meshjoin   ; break;
           case  4: mResource = R.raw.predeform  ; break;
diff --git a/src/main/java/org/distorted/examples/meshfile/MeshFileRenderer.java b/src/main/java/org/distorted/examples/meshfile/MeshFileRenderer.java
index a95ac03..c716492 100644
--- a/src/main/java/org/distorted/examples/meshfile/MeshFileRenderer.java
+++ b/src/main/java/org/distorted/examples/meshfile/MeshFileRenderer.java
@@ -210,36 +210,41 @@ class MeshFileRenderer implements GLSurfaceView.Renderer, DistortedLibrary.Libra
       float F = 0.5f;
       float E = SQ3/2;
 
-      switch(resourceID)
-          {
-          case  R.raw.deferredjob:
-          case  R.raw.meshjoin   :
-          case  PROCEDURAL       :
-          case  POLYGON          :
-          case  R.raw.predeform  : return createWhiteTexture();
-
-          case  R.raw.cube2      :
-          case  R.raw.cube3      :
-          case  R.raw.cube4      :
-          case  R.raw.cube5      : colors = new int[] { 0xffffff00, 0xffffffff, 0xff0000ff, 0xff00ff00, 0xffff0000, 0xffb5651d };
-                                   vertices = new float[] { -F,-F, +F,-F, +F,+F, -F,+F};
-                                   return factory.createTexture(vertices,colors,0.10f, 0.10f, true);
-          case  R.raw.pyra3      :
-          case  R.raw.pyra4      :
-          case  R.raw.pyra5      : colors = new int[] { 0xffffff00, 0xff00ff00, 0xff0000ff, 0xffff0000 };
-                                   vertices = new float[] { -F,-E/3, +F,-E/3, 0.0f,2*E/3};
-                                   return factory.createTexture(vertices,colors,0.05f, 0.05f, true);
-
-          case  R.raw.dino       : colors = new int[] { 0xffffff00, 0xffffffff, 0xff0000ff, 0xff00ff00, 0xffff0000, 0xffb5651d };
-                                   vertices = new float[] { -F,F/3, 0,-2*F/3, +F,F/3 };
-                                   return factory.createTexture(vertices,colors,0.05f, 0.03f, true);
-
-          case R.raw.skewb       : colors = new int[] { 0xffffff00, 0xffffffff, 0xff0000ff, 0xff00ff00, 0xffff0000, 0xffb5651d };
-                                   //vertices = new float[] { -G,-G, +G,-G, +G,+G, -G,+G };
-
-                                   vertices = new float[] { -F+F/4,F/4, F/4,-F+F/4, F/4,F/4};
-                                   return factory.createTexture(vertices,colors,0.05f, 0.08f, true);
-          }
+      if( resourceID == R.raw.deferredjob ||
+          resourceID == R.raw.meshjoin    ||
+          resourceID == PROCEDURAL        ||
+          resourceID == POLYGON           ||
+          resourceID == R.raw.predeform    ) return createWhiteTexture();
+
+      if( resourceID == R.raw.cube2       ||
+          resourceID == R.raw.cube3       ||
+          resourceID == R.raw.cube4       ||
+          resourceID == R.raw.cube5        )
+        {
+        colors = new int[] { 0xffffff00, 0xffffffff, 0xff0000ff, 0xff00ff00, 0xffff0000, 0xffb5651d };
+        vertices = new float[] { -F,-F, +F,-F, +F,+F, -F,+F};
+        return factory.createTexture(vertices,colors,0.10f, 0.10f, true);
+        }
+      if( resourceID == R.raw.pyra3       ||
+          resourceID == R.raw.pyra4       ||
+          resourceID == R.raw.pyra5        )
+        {
+        colors = new int[] { 0xffffff00, 0xff00ff00, 0xff0000ff, 0xffff0000 };
+        vertices = new float[] { -F,-E/3, +F,-E/3, 0.0f,2*E/3};
+        return factory.createTexture(vertices,colors,0.05f, 0.05f, true);
+        }
+      if( resourceID == R.raw.dino )
+        {
+        colors = new int[] { 0xffffff00, 0xffffffff, 0xff0000ff, 0xff00ff00, 0xffff0000, 0xffb5651d };
+        vertices = new float[] { -F,F/3, 0,-2*F/3, +F,F/3 };
+        return factory.createTexture(vertices,colors,0.05f, 0.03f, true);
+        }
+      if( resourceID == R.raw.skewb )
+        {
+        colors = new int[] { 0xffffff00, 0xffffffff, 0xff0000ff, 0xff00ff00, 0xffff0000, 0xffb5651d };
+        vertices = new float[] { -F+F/4,F/4, F/4,-F+F/4, F/4,F/4};
+        return factory.createTexture(vertices,colors,0.05f, 0.08f, true);
+        }
 
       return null;
       }
diff --git a/src/main/java/org/distorted/examples/meshjoin/MeshJoinActivity.java b/src/main/java/org/distorted/examples/meshjoin/MeshJoinActivity.java
index 13e94ba..dd6ab38 100644
--- a/src/main/java/org/distorted/examples/meshjoin/MeshJoinActivity.java
+++ b/src/main/java/org/distorted/examples/meshjoin/MeshJoinActivity.java
@@ -77,14 +77,12 @@ public class MeshJoinActivity extends Activity
       CheckBox box = (CheckBox)view;
       int id = box.getId();
       boolean checked = box.isChecked();
-      MeshJoinSurfaceView sView = findViewById(R.id.meshjoinSurfaceView);
+      MeshJoinSurfaceView v = findViewById(R.id.meshjoinSurfaceView);
+      MeshJoinRenderer r = v.getRenderer();
 
-      switch(id)
-        {
-        case R.id.meshjoinCheckBox0  : sView.getRenderer().setChecked(0,checked); break;
-        case R.id.meshjoinCheckBox1  : sView.getRenderer().setChecked(1,checked); break;
-        case R.id.meshjoinCheckBox2  : sView.getRenderer().setChecked(2,checked); break;
-        case R.id.meshjoinCheckBox3  : sView.getRenderer().setChecked(3,checked); break;
-        }
+      if( id == R.id.meshjoinCheckBox0 ) r.setChecked(0,checked);
+      if( id == R.id.meshjoinCheckBox1 ) r.setChecked(1,checked);
+      if( id == R.id.meshjoinCheckBox2 ) r.setChecked(2,checked);
+      if( id == R.id.meshjoinCheckBox3 ) r.setChecked(3,checked);
       }
 }
diff --git a/src/main/java/org/distorted/examples/multiblur/MultiblurActivity.java b/src/main/java/org/distorted/examples/multiblur/MultiblurActivity.java
index 31c342d..276d9a7 100644
--- a/src/main/java/org/distorted/examples/multiblur/MultiblurActivity.java
+++ b/src/main/java/org/distorted/examples/multiblur/MultiblurActivity.java
@@ -86,23 +86,25 @@ public class MultiblurActivity extends Activity implements SeekBar.OnSeekBarChan
       {
       MultiblurSurfaceView v = findViewById(R.id.multiblurSurfaceView);
       MultiblurRenderer renderer = v.getRenderer();
+      int pid = parent.getId();
 
-      switch(parent.getId())
+      if( pid == R.id.multiblur_spinnerQuality )
         {
-        case R.id.multiblur_spinnerQuality: EffectQuality quality;
-
-                                            switch(pos)
-                                              {
-                                              case 0 : quality = EffectQuality.HIGHEST; break;
-                                              case 1 : quality = EffectQuality.HIGH   ; break;
-                                              case 2 : quality = EffectQuality.MEDIUM ; break;
-                                              default: quality = EffectQuality.LOW    ;
-                                              }
-                                            renderer.setQuality(quality);
-                                            mQuality = quality.ordinal();
-                                            break;
-        case R.id.multiblur_spinnerMode   : renderer.setRenderModeToOIT(pos==1);
-                                            break;
+        EffectQuality quality;
+
+        switch(pos)
+          {
+          case 0 : quality = EffectQuality.HIGHEST; break;
+          case 1 : quality = EffectQuality.HIGH   ; break;
+          case 2 : quality = EffectQuality.MEDIUM ; break;
+          default: quality = EffectQuality.LOW    ;
+          }
+        renderer.setQuality(quality);
+        mQuality = quality.ordinal();
+        }
+      if( pid == R.id.multiblur_spinnerMode )
+        {
+        renderer.setRenderModeToOIT(pos==1);
         }
       }
 
@@ -192,16 +194,12 @@ public class MultiblurActivity extends Activity implements SeekBar.OnSeekBarChan
 
     public void onProgressChanged(SeekBar bar, int progress, boolean fromUser)
       {
-      switch (bar.getId())
-        {
-        case R.id.multiblurDistanceSeek: MultiblurSurfaceView view1 = findViewById(R.id.multiblurSurfaceView);
-                                         view1.getRenderer().setDistance(progress);
-                                         break;
-        case R.id.multiblurRangeSeek   : MultiblurSurfaceView view2 = findViewById(R.id.multiblurSurfaceView);
-                                         view2.getRenderer().setRange(progress);
-                                         break;
+      int id = bar.getId();
+      MultiblurSurfaceView v = findViewById(R.id.multiblurSurfaceView);
+      MultiblurRenderer r = v.getRenderer();
 
-        }
+      if( id == R.id.multiblurDistanceSeek ) r.setDistance(progress);
+      if( id == R.id.multiblurRangeSeek    ) r.setRange(progress);
       }
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
@@ -219,19 +217,17 @@ public class MultiblurActivity extends Activity implements SeekBar.OnSeekBarChan
     CheckBox box = (CheckBox)view;
     int id = box.getId();
     boolean checked = box.isChecked();
-    MultiblurSurfaceView sView = findViewById(R.id.multiblurSurfaceView);
-
-    switch(id)
-      {
-      case R.id.multiblurCheckBox0  : sView.getRenderer().setChecked(0,checked); break;
-      case R.id.multiblurCheckBox1  : sView.getRenderer().setChecked(1,checked); break;
-      case R.id.multiblurCheckBox2  : sView.getRenderer().setChecked(2,checked); break;
-      case R.id.multiblurCheckBox3  : sView.getRenderer().setChecked(3,checked); break;
-      case R.id.multiblurCheckBox4  : sView.getRenderer().setChecked(4,checked); break;
-      case R.id.multiblurCheckBox5  : sView.getRenderer().setChecked(5,checked); break;
-      case R.id.multiblurCheckBox6  : sView.getRenderer().setChecked(6,checked); break;
-      case R.id.multiblurCheckBox7  : sView.getRenderer().setChecked(7,checked); break;
-      }
+    MultiblurSurfaceView v = findViewById(R.id.multiblurSurfaceView);
+    MultiblurRenderer r = v.getRenderer();
+
+    if( id == R.id.multiblurCheckBox0 ) r.setChecked(0,checked);
+    if( id == R.id.multiblurCheckBox1 ) r.setChecked(1,checked);
+    if( id == R.id.multiblurCheckBox2 ) r.setChecked(2,checked);
+    if( id == R.id.multiblurCheckBox3 ) r.setChecked(3,checked);
+    if( id == R.id.multiblurCheckBox4 ) r.setChecked(4,checked);
+    if( id == R.id.multiblurCheckBox5 ) r.setChecked(5,checked);
+    if( id == R.id.multiblurCheckBox6 ) r.setChecked(6,checked);
+    if( id == R.id.multiblurCheckBox7 ) r.setChecked(7,checked);
     }
 
 }
diff --git a/src/main/java/org/distorted/examples/olimpic/OlimpicActivity.java b/src/main/java/org/distorted/examples/olimpic/OlimpicActivity.java
index 38664dc..22d105e 100644
--- a/src/main/java/org/distorted/examples/olimpic/OlimpicActivity.java
+++ b/src/main/java/org/distorted/examples/olimpic/OlimpicActivity.java
@@ -81,60 +81,58 @@ public class OlimpicActivity extends Activity
       CheckBox box = (CheckBox)view;
       int id = box.getId();
       boolean checked = box.isChecked();
-      OlimpicSurfaceView sView = findViewById(R.id.olimpicSurfaceView);
-
-      switch(id)
-        {
-        case R.id.olimpicCheckBoxBlue0  : sView.getRenderer().pressed(0,0,checked); mBlue[0]  =checked; break;
-        case R.id.olimpicCheckBoxBlue1  : sView.getRenderer().pressed(0,1,checked); mBlue[1]  =checked; break;
-        case R.id.olimpicCheckBoxBlue2  : sView.getRenderer().pressed(0,2,checked); mBlue[2]  =checked; break;
-        case R.id.olimpicCheckBoxBlue3  : sView.getRenderer().pressed(0,3,checked); mBlue[3]  =checked; break;
-        case R.id.olimpicCheckBoxBlue4  : sView.getRenderer().pressed(0,4,checked); mBlue[4]  =checked; break;
-        case R.id.olimpicCheckBoxBlue5  : sView.getRenderer().pressed(0,5,checked); mBlue[5]  =checked; break;
-        case R.id.olimpicCheckBoxBlue6  : sView.getRenderer().pressed(0,6,checked); mBlue[6]  =checked; break;
-        case R.id.olimpicCheckBoxBlue7  : sView.getRenderer().pressed(0,7,checked); mBlue[7]  =checked; break;
-        case R.id.olimpicCheckBoxBlue8  : sView.getRenderer().pressed(0,8,checked); mBlue[8]  =checked; break;
-
-        case R.id.olimpicCheckBoxBlack0 : sView.getRenderer().pressed(1,0,checked); mBlack[0] =checked; break;
-        case R.id.olimpicCheckBoxBlack1 : sView.getRenderer().pressed(1,1,checked); mBlack[1] =checked; break;
-        case R.id.olimpicCheckBoxBlack2 : sView.getRenderer().pressed(1,2,checked); mBlack[2] =checked; break;
-        case R.id.olimpicCheckBoxBlack3 : sView.getRenderer().pressed(1,3,checked); mBlack[3] =checked; break;
-        case R.id.olimpicCheckBoxBlack4 : sView.getRenderer().pressed(1,4,checked); mBlack[4] =checked; break;
-        case R.id.olimpicCheckBoxBlack5 : sView.getRenderer().pressed(1,5,checked); mBlack[5] =checked; break;
-        case R.id.olimpicCheckBoxBlack6 : sView.getRenderer().pressed(1,6,checked); mBlack[6] =checked; break;
-        case R.id.olimpicCheckBoxBlack7 : sView.getRenderer().pressed(1,7,checked); mBlack[7] =checked; break;
-        case R.id.olimpicCheckBoxBlack8 : sView.getRenderer().pressed(1,8,checked); mBlack[8] =checked; break;
-
-        case R.id.olimpicCheckBoxRed0   : sView.getRenderer().pressed(2,0,checked); mRed[0]   =checked; break;
-        case R.id.olimpicCheckBoxRed1   : sView.getRenderer().pressed(2,1,checked); mRed[1]   =checked; break;
-        case R.id.olimpicCheckBoxRed2   : sView.getRenderer().pressed(2,2,checked); mRed[2]   =checked; break;
-        case R.id.olimpicCheckBoxRed3   : sView.getRenderer().pressed(2,3,checked); mRed[3]   =checked; break;
-        case R.id.olimpicCheckBoxRed4   : sView.getRenderer().pressed(2,4,checked); mRed[4]   =checked; break;
-        case R.id.olimpicCheckBoxRed5   : sView.getRenderer().pressed(2,5,checked); mRed[5]   =checked; break;
-        case R.id.olimpicCheckBoxRed6   : sView.getRenderer().pressed(2,6,checked); mRed[6]   =checked; break;
-        case R.id.olimpicCheckBoxRed7   : sView.getRenderer().pressed(2,7,checked); mRed[7]   =checked; break;
-        case R.id.olimpicCheckBoxRed8   : sView.getRenderer().pressed(2,8,checked); mRed[8]   =checked; break;
-
-        case R.id.olimpicCheckBoxYellow0: sView.getRenderer().pressed(3,0,checked); mYellow[0]=checked; break;
-        case R.id.olimpicCheckBoxYellow1: sView.getRenderer().pressed(3,1,checked); mYellow[1]=checked; break;
-        case R.id.olimpicCheckBoxYellow2: sView.getRenderer().pressed(3,2,checked); mYellow[2]=checked; break;
-        case R.id.olimpicCheckBoxYellow3: sView.getRenderer().pressed(3,3,checked); mYellow[3]=checked; break;
-        case R.id.olimpicCheckBoxYellow4: sView.getRenderer().pressed(3,4,checked); mYellow[4]=checked; break;
-        case R.id.olimpicCheckBoxYellow5: sView.getRenderer().pressed(3,5,checked); mYellow[5]=checked; break;
-        case R.id.olimpicCheckBoxYellow6: sView.getRenderer().pressed(3,6,checked); mYellow[6]=checked; break;
-        case R.id.olimpicCheckBoxYellow7: sView.getRenderer().pressed(3,7,checked); mYellow[7]=checked; break;
-        case R.id.olimpicCheckBoxYellow8: sView.getRenderer().pressed(3,8,checked); mYellow[8]=checked; break;
-
-        case R.id.olimpicCheckBoxGreen0 : sView.getRenderer().pressed(4,0,checked); mGreen[0] =checked; break;
-        case R.id.olimpicCheckBoxGreen1 : sView.getRenderer().pressed(4,1,checked); mGreen[1] =checked; break;
-        case R.id.olimpicCheckBoxGreen2 : sView.getRenderer().pressed(4,2,checked); mGreen[2] =checked; break;
-        case R.id.olimpicCheckBoxGreen3 : sView.getRenderer().pressed(4,3,checked); mGreen[3] =checked; break;
-        case R.id.olimpicCheckBoxGreen4 : sView.getRenderer().pressed(4,4,checked); mGreen[4] =checked; break;
-        case R.id.olimpicCheckBoxGreen5 : sView.getRenderer().pressed(4,5,checked); mGreen[5] =checked; break;
-        case R.id.olimpicCheckBoxGreen6 : sView.getRenderer().pressed(4,6,checked); mGreen[6] =checked; break;
-        case R.id.olimpicCheckBoxGreen7 : sView.getRenderer().pressed(4,7,checked); mGreen[7] =checked; break;
-        case R.id.olimpicCheckBoxGreen8 : sView.getRenderer().pressed(4,8,checked); mGreen[8] =checked; break;
-        }
+      OlimpicSurfaceView v = findViewById(R.id.olimpicSurfaceView);
+      OlimpicRenderer r = v.getRenderer();
+
+      if( id == R.id.olimpicCheckBoxBlue0  ) r.pressed(0,0,checked); mBlue[0]  =checked;
+      if( id == R.id.olimpicCheckBoxBlue1  ) r.pressed(0,1,checked); mBlue[1]  =checked;
+      if( id == R.id.olimpicCheckBoxBlue2  ) r.pressed(0,2,checked); mBlue[2]  =checked;
+      if( id == R.id.olimpicCheckBoxBlue3  ) r.pressed(0,3,checked); mBlue[3]  =checked;
+      if( id == R.id.olimpicCheckBoxBlue4  ) r.pressed(0,4,checked); mBlue[4]  =checked;
+      if( id == R.id.olimpicCheckBoxBlue5  ) r.pressed(0,5,checked); mBlue[5]  =checked;
+      if( id == R.id.olimpicCheckBoxBlue6  ) r.pressed(0,6,checked); mBlue[6]  =checked;
+      if( id == R.id.olimpicCheckBoxBlue7  ) r.pressed(0,7,checked); mBlue[7]  =checked;
+      if( id == R.id.olimpicCheckBoxBlue8  ) r.pressed(0,8,checked); mBlue[8]  =checked;
+
+      if( id == R.id.olimpicCheckBoxBlack0 ) r.pressed(1,0,checked); mBlack[0] =checked;
+      if( id == R.id.olimpicCheckBoxBlack1 ) r.pressed(1,1,checked); mBlack[1] =checked;
+      if( id == R.id.olimpicCheckBoxBlack2 ) r.pressed(1,2,checked); mBlack[2] =checked;
+      if( id == R.id.olimpicCheckBoxBlack3 ) r.pressed(1,3,checked); mBlack[3] =checked;
+      if( id == R.id.olimpicCheckBoxBlack4 ) r.pressed(1,4,checked); mBlack[4] =checked;
+      if( id == R.id.olimpicCheckBoxBlack5 ) r.pressed(1,5,checked); mBlack[5] =checked;
+      if( id == R.id.olimpicCheckBoxBlack6 ) r.pressed(1,6,checked); mBlack[6] =checked;
+      if( id == R.id.olimpicCheckBoxBlack7 ) r.pressed(1,7,checked); mBlack[7] =checked;
+      if( id == R.id.olimpicCheckBoxBlack8 ) r.pressed(1,8,checked); mBlack[8] =checked;
+
+      if( id == R.id.olimpicCheckBoxRed0   ) r.pressed(2,0,checked); mRed[0]   =checked;
+      if( id == R.id.olimpicCheckBoxRed1   ) r.pressed(2,1,checked); mRed[1]   =checked;
+      if( id == R.id.olimpicCheckBoxRed2   ) r.pressed(2,2,checked); mRed[2]   =checked;
+      if( id == R.id.olimpicCheckBoxRed3   ) r.pressed(2,3,checked); mRed[3]   =checked;
+      if( id == R.id.olimpicCheckBoxRed4   ) r.pressed(2,4,checked); mRed[4]   =checked;
+      if( id == R.id.olimpicCheckBoxRed5   ) r.pressed(2,5,checked); mRed[5]   =checked;
+      if( id == R.id.olimpicCheckBoxRed6   ) r.pressed(2,6,checked); mRed[6]   =checked;
+      if( id == R.id.olimpicCheckBoxRed7   ) r.pressed(2,7,checked); mRed[7]   =checked;
+      if( id == R.id.olimpicCheckBoxRed8   ) r.pressed(2,8,checked); mRed[8]   =checked;
+
+      if( id == R.id.olimpicCheckBoxYellow0) r.pressed(3,0,checked); mYellow[0]=checked;
+      if( id == R.id.olimpicCheckBoxYellow1) r.pressed(3,1,checked); mYellow[1]=checked;
+      if( id == R.id.olimpicCheckBoxYellow2) r.pressed(3,2,checked); mYellow[2]=checked;
+      if( id == R.id.olimpicCheckBoxYellow3) r.pressed(3,3,checked); mYellow[3]=checked;
+      if( id == R.id.olimpicCheckBoxYellow4) r.pressed(3,4,checked); mYellow[4]=checked;
+      if( id == R.id.olimpicCheckBoxYellow5) r.pressed(3,5,checked); mYellow[5]=checked;
+      if( id == R.id.olimpicCheckBoxYellow6) r.pressed(3,6,checked); mYellow[6]=checked;
+      if( id == R.id.olimpicCheckBoxYellow7) r.pressed(3,7,checked); mYellow[7]=checked;
+      if( id == R.id.olimpicCheckBoxYellow8) r.pressed(3,8,checked); mYellow[8]=checked;
+
+      if( id == R.id.olimpicCheckBoxGreen0 ) r.pressed(4,0,checked); mGreen[0] =checked;
+      if( id == R.id.olimpicCheckBoxGreen1 ) r.pressed(4,1,checked); mGreen[1] =checked;
+      if( id == R.id.olimpicCheckBoxGreen2 ) r.pressed(4,2,checked); mGreen[2] =checked;
+      if( id == R.id.olimpicCheckBoxGreen3 ) r.pressed(4,3,checked); mGreen[3] =checked;
+      if( id == R.id.olimpicCheckBoxGreen4 ) r.pressed(4,4,checked); mGreen[4] =checked;
+      if( id == R.id.olimpicCheckBoxGreen5 ) r.pressed(4,5,checked); mGreen[5] =checked;
+      if( id == R.id.olimpicCheckBoxGreen6 ) r.pressed(4,6,checked); mGreen[6] =checked;
+      if( id == R.id.olimpicCheckBoxGreen7 ) r.pressed(4,7,checked); mGreen[7] =checked;
+      if( id == R.id.olimpicCheckBoxGreen8 ) r.pressed(4,8,checked); mGreen[8] =checked;
       }
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
diff --git a/src/main/java/org/distorted/examples/predeform/PredeformActivity.java b/src/main/java/org/distorted/examples/predeform/PredeformActivity.java
index e0beb29..43e2b41 100644
--- a/src/main/java/org/distorted/examples/predeform/PredeformActivity.java
+++ b/src/main/java/org/distorted/examples/predeform/PredeformActivity.java
@@ -335,17 +335,16 @@ public class PredeformActivity extends Activity implements View.OnClickListener,
   @Override
   public void onClick(View v)
     {
-    switch (v.getId())
-      {
-      case R.id.predeformAddEffect   : newEffect(); break;
-      case R.id.predeformRemoveEffect: removeAll(); break;
-      case R.id.predeformCreate      : create();    break;
-      case R.id.button1dRemove       :
-      case R.id.button2dRemove       :
-      case R.id.button3dRemove       :
-      case R.id.button4dRemove       :
-      case R.id.button5dRemove       : remove(v)  ; break;
-      }
+    int id = v.getId();
+
+    if( id == R.id.predeformAddEffect   ) newEffect();
+    if( id == R.id.predeformRemoveEffect) removeAll();
+    if( id == R.id.predeformCreate      ) create();
+    if( id == R.id.button1dRemove      ||
+        id == R.id.button2dRemove      ||
+        id == R.id.button3dRemove      ||
+        id == R.id.button4dRemove      ||
+        id == R.id.button5dRemove       ) remove(v);
     }
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
@@ -365,33 +364,36 @@ public class PredeformActivity extends Activity implements View.OnClickListener,
   @Override
   public void onItemSelected(AdapterView<?> parent, View view, int pos, long id)
     {
-    switch(parent.getId())
+    int pid = parent.getId();
+
+    if( pid == R.id.predeformSpinnerType )
+      {
+      if( mObjectType!=pos )
+        {
+        mObjectType = pos;
+        int dim = PredeformMeshList.getDimension(mObjectType);
+        mRowsPicker.setEnabled(dim>=1);
+        mColsPicker.setEnabled(dim>=2);
+        mSlicPicker.setEnabled(dim>=3);
+        }
+      }
+    if( pid == R.id.predeformSpinnerBitmap )
+      {
+      switch(pos)
+        {
+        case 0: mBitmapID = -1            ; break;
+        case 1: mBitmapID = R.raw.face    ; break;
+        case 2: mBitmapID = R.raw.dog     ; break;
+        case 3: mBitmapID = R.raw.cat     ; break;
+        case 4: mBitmapID = R.raw.grid    ; break;
+        case 5: mBitmapID = R.raw.bean    ; break;
+        case 6: mBitmapID = R.raw.monalisa; break;
+        case 7: mBitmapID = R.raw.world   ; break;
+        }
+      }
+    if( pid == R.id.predeformSpinnerEffect )
       {
-      case R.id.predeformSpinnerType  : if( mObjectType!=pos )
-                                          {
-                                          mObjectType = pos;
-
-                                          int dim = PredeformMeshList.getDimension(mObjectType);
-
-                                          mRowsPicker.setEnabled(dim>=1);
-                                          mColsPicker.setEnabled(dim>=2);
-                                          mSlicPicker.setEnabled(dim>=3);
-                                          }
-                                        break;
-      case R.id.predeformSpinnerBitmap: switch(pos)
-                                          {
-                                          case 0: mBitmapID = -1            ; break;
-                                          case 1: mBitmapID = R.raw.face    ; break;
-                                          case 2: mBitmapID = R.raw.dog     ; break;
-                                          case 3: mBitmapID = R.raw.cat     ; break;
-                                          case 4: mBitmapID = R.raw.grid    ; break;
-                                          case 5: mBitmapID = R.raw.bean    ; break;
-                                          case 6: mBitmapID = R.raw.monalisa; break;
-                                          case 7: mBitmapID = R.raw.world   ; break;
-                                          }
-                                        break;
-      case R.id.predeformSpinnerEffect: mEffectAdd = pos;
-                                        break;
+      mEffectAdd = pos;
       }
     }
 
diff --git a/src/main/java/org/distorted/examples/projection/ProjectionActivity.java b/src/main/java/org/distorted/examples/projection/ProjectionActivity.java
index c836fbd..02b0598 100644
--- a/src/main/java/org/distorted/examples/projection/ProjectionActivity.java
+++ b/src/main/java/org/distorted/examples/projection/ProjectionActivity.java
@@ -99,18 +99,19 @@ public class ProjectionActivity extends Activity implements OnSeekBarChangeListe
     
     public void onProgressChanged(SeekBar bar, int progress, boolean fromUser) 
       {
-      float ret;
-      ProjectionSurfaceView view = findViewById(R.id.surfaceViewProjection);
-      ProjectionRenderer renderer = view.getRenderer();
+      ProjectionSurfaceView v = findViewById(R.id.surfaceViewProjection);
+      ProjectionRenderer r = v.getRenderer();
+      int id = bar.getId();
 
-      switch (bar.getId()) 
+      if( id == R.id.projectionSeekFOV )
         {
-        case R.id.projectionSeekFOV : ret = renderer.setFOV(progress);
-                                      textF.setText(getString(R.string.fov_placeholder,(int)ret));
-                                      break;
-        case R.id.projectionSeekNear: ret = renderer.setNear(progress);
-                                      textN.setText(getString(R.string.near_placeholder,ret));
-                                      break;
+        float ret = r.setFOV(progress);
+        textF.setText(getString(R.string.fov_placeholder,(int)ret));
+        }
+      if( id == R.id.projectionSeekNear)
+        {
+        float ret = r.setNear(progress);
+        textN.setText(getString(R.string.near_placeholder,ret));
         }
       }
 
diff --git a/src/main/java/org/distorted/examples/save/SaveActivity.java b/src/main/java/org/distorted/examples/save/SaveActivity.java
index 27ca9ba..f3a424b 100644
--- a/src/main/java/org/distorted/examples/save/SaveActivity.java
+++ b/src/main/java/org/distorted/examples/save/SaveActivity.java
@@ -120,15 +120,12 @@ public class SaveActivity extends Activity implements SeekBar.OnSeekBarChangeLis
 
   public void onProgressChanged(SeekBar bar, int progress, boolean fromUser)
     {
-    SaveSurfaceView view = findViewById(R.id.saveSurfaceView);
+    SaveSurfaceView v = findViewById(R.id.saveSurfaceView);
+    SaveRenderer r = v.getRenderer();
+    int id = bar.getId();
 
-    switch (bar.getId())
-      {
-      case R.id.saveSeekBarSize : view.getRenderer().setSize(progress>50 ? ((progress-50)/16.0f + 1.0f):(0.015f*progress + 0.25f));
-                                  break;
-      case R.id.saveSeekBarScale: view.getRenderer().setScale(0.009f*progress+0.1f);
-                                  break;
-      }
+    if( id == R.id.saveSeekBarSize ) r.setSize(progress>50 ? ((progress-50)/16.0f + 1.0f):(0.015f*progress + 0.25f));
+    if( id == R.id.saveSeekBarScale) r.setScale(0.009f*progress+0.1f);
     }
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
diff --git a/src/main/java/org/distorted/examples/singlemesh/SingleMeshActivity.java b/src/main/java/org/distorted/examples/singlemesh/SingleMeshActivity.java
index af64394..b8efe6a 100644
--- a/src/main/java/org/distorted/examples/singlemesh/SingleMeshActivity.java
+++ b/src/main/java/org/distorted/examples/singlemesh/SingleMeshActivity.java
@@ -76,16 +76,14 @@ public class SingleMeshActivity extends Activity
       {
       Button butt = (Button)view;
       int id = butt.getId();
-      SingleMeshSurfaceView sView = findViewById(R.id.singlemeshSurfaceView);
+      SingleMeshSurfaceView v = findViewById(R.id.singlemeshSurfaceView);
+      SingleMeshRenderer r = v.getRenderer();
 
-      switch(id)
-        {
-        case R.id.singlemeshButtonLX : sView.getRenderer().apply( (1<<4) + (0<<2) + 0, 0 ); break;
-        case R.id.singlemeshButtonRX : sView.getRenderer().apply( (2<<4) + (0<<2) + 0, 0 ); break;
-        case R.id.singlemeshButtonLY : sView.getRenderer().apply( (0<<4) + (1<<2) + 0, 1 ); break;
-        case R.id.singlemeshButtonRY : sView.getRenderer().apply( (0<<4) + (2<<2) + 0, 1 ); break;
-        case R.id.singlemeshButtonLZ : sView.getRenderer().apply( (0<<4) + (0<<2) + 1, 2 ); break;
-        case R.id.singlemeshButtonRZ : sView.getRenderer().apply( (0<<4) + (0<<2) + 2, 2 ); break;
-        }
+      if( id == R.id.singlemeshButtonLX ) r.apply( (1<<4) + (0<<2) + 0, 0 );
+      if( id == R.id.singlemeshButtonRX ) r.apply( (2<<4) + (0<<2) + 0, 0 );
+      if( id == R.id.singlemeshButtonLY ) r.apply( (0<<4) + (1<<2) + 0, 1 );
+      if( id == R.id.singlemeshButtonRY ) r.apply( (0<<4) + (2<<2) + 0, 1 );
+      if( id == R.id.singlemeshButtonLZ ) r.apply( (0<<4) + (0<<2) + 1, 2 );
+      if( id == R.id.singlemeshButtonRZ ) r.apply( (0<<4) + (0<<2) + 2, 2 );
       }
 }
diff --git a/src/main/java/org/distorted/examples/transparency/TransparencyActivity.java b/src/main/java/org/distorted/examples/transparency/TransparencyActivity.java
index 6265511..f7adc7b 100644
--- a/src/main/java/org/distorted/examples/transparency/TransparencyActivity.java
+++ b/src/main/java/org/distorted/examples/transparency/TransparencyActivity.java
@@ -83,13 +83,10 @@ public class TransparencyActivity extends Activity implements SeekBar.OnSeekBarC
 
   public void onItemSelected(AdapterView<?> parent, View view, int pos, long id)
     {
-    switch(parent.getId())
-      {
-      case R.id.transparency_spinnerFirst  : privateRenderFirst(pos);
-                                             break;
-      case R.id.transparency_spinnerMode   : setRenderModeToOIT(pos==1);
-                                             break;
-      }
+    int pid = parent.getId();
+
+    if( pid == R.id.transparency_spinnerFirst ) privateRenderFirst(pos);
+    if( pid == R.id.transparency_spinnerMode  ) setRenderModeToOIT(pos==1);
     }
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
@@ -152,15 +149,12 @@ public class TransparencyActivity extends Activity implements SeekBar.OnSeekBarC
 
     public void onProgressChanged(SeekBar bar, int progress, boolean fromUser)
       {
-      switch (bar.getId())
-        {
-        case R.id.transparencySeekRed:    TransparencySurfaceView view0 = findViewById(R.id.transparencySurfaceView);
-                                          view0.getRenderer().setTransparency(0, (float)progress/100 );
-                                          break;
-        case R.id.transparencySeekYellow: TransparencySurfaceView view1 = findViewById(R.id.transparencySurfaceView);
-                                          view1.getRenderer().setTransparency(1, (float)progress/100 );
-                                          break;
-        }
+      int id = bar.getId();
+      TransparencySurfaceView v = findViewById(R.id.transparencySurfaceView);
+      TransparencyRenderer r = v.getRenderer();
+
+      if( id == R.id.transparencySeekRed    ) r.setTransparency(0, (float)progress/100 );
+      if( id == R.id.transparencySeekYellow ) r.setTransparency(1, (float)progress/100 );
       }
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
@@ -199,12 +193,11 @@ public class TransparencyActivity extends Activity implements SeekBar.OnSeekBarC
       {
       CheckBox box = (CheckBox)view;
       boolean checked = box.isChecked();
-      TransparencySurfaceView sView = findViewById(R.id.transparencySurfaceView);
+      TransparencySurfaceView v = findViewById(R.id.transparencySurfaceView);
+      TransparencyRenderer r = v.getRenderer();
+      int id = box.getId();
 
-      switch(box.getId())
-        {
-        case R.id.transparencyCheckBox0  : sView.getRenderer().setPostprocess(0,checked); break;
-        case R.id.transparencyCheckBox1  : sView.getRenderer().setPostprocess(1,checked); break;
-        }
+      if( id == R.id.transparencyCheckBox0 ) r.setPostprocess(0,checked);
+      if( id == R.id.transparencyCheckBox1 ) r.setPostprocess(1,checked);
       }
 }
diff --git a/src/main/java/org/distorted/examples/triblur/TriblurActivity.java b/src/main/java/org/distorted/examples/triblur/TriblurActivity.java
index f9ccc65..626f6e2 100644
--- a/src/main/java/org/distorted/examples/triblur/TriblurActivity.java
+++ b/src/main/java/org/distorted/examples/triblur/TriblurActivity.java
@@ -93,20 +93,29 @@ public class TriblurActivity extends Activity implements SeekBar.OnSeekBarChange
 
     public void onItemSelected(AdapterView<?> parent, View view, int pos, long id)
       {
-      switch(parent.getId())
+      int pid = parent.getId();
+
+      if( pid == R.id.triblur_spinnerQuality )
+        {
+        privateQuality(pos);
+        }
+      if( pid == R.id.triblur_spinnerMode )
+        {
+        TriblurSurfaceView v = findViewById(R.id.triblurSurfaceView);
+        TriblurRenderer renderer = v.getRenderer();
+        renderer.setRenderModeToOIT(pos==1);
+        }
+      if( pid == R.id.triblur_effect0 )
+        {
+        privateEffect(0,pos);
+        }
+      if( pid == R.id.triblur_effect1 )
         {
-        case R.id.triblur_spinnerQuality: privateQuality(pos);
-                                          break;
-        case R.id.triblur_spinnerMode   : TriblurSurfaceView v = findViewById(R.id.triblurSurfaceView);
-                                          TriblurRenderer renderer = v.getRenderer();
-                                          renderer.setRenderModeToOIT(pos==1);
-                                          break;
-        case R.id.triblur_effect0       : privateEffect(0,pos);
-                                          break;
-        case R.id.triblur_effect1       : privateEffect(1,pos);
-                                          break;
-        case R.id.triblur_effect2       : privateEffect(2,pos);
-                                          break;
+        privateEffect(1,pos);
+        }
+      if( pid == R.id.triblur_effect2 )
+        {
+        privateEffect(2,pos);
         }
       }
 
@@ -192,18 +201,13 @@ public class TriblurActivity extends Activity implements SeekBar.OnSeekBarChange
 
     public void onProgressChanged(SeekBar bar, int progress, boolean fromUser)
       {
-      switch (bar.getId())
-        {
-        case R.id.triblurSeek0: TriblurSurfaceView view0 = findViewById(R.id.triblurSurfaceView);
-                                view0.getRenderer().setRange(0,progress);
-                                break;
-        case R.id.triblurSeek1: TriblurSurfaceView view1 = findViewById(R.id.triblurSurfaceView);
-                                view1.getRenderer().setRange(1,progress);
-                                break;
-        case R.id.triblurSeek2: TriblurSurfaceView view2 = findViewById(R.id.triblurSurfaceView);
-                                view2.getRenderer().setRange(2,progress);
-                                break;
-        }
+      int id = bar.getId();
+      TriblurSurfaceView v = findViewById(R.id.triblurSurfaceView);
+      TriblurRenderer r = v.getRenderer();
+
+      if( id == R.id.triblurSeek0 ) r.setRange(0,progress);
+      if( id == R.id.triblurSeek1 ) r.setRange(1,progress);
+      if( id == R.id.triblurSeek2 ) r.setRange(2,progress);
       }
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
@@ -228,12 +232,11 @@ public class TriblurActivity extends Activity implements SeekBar.OnSeekBarChange
 
   public void backgroundColor(View v)
     {
-    switch(v.getId())
-      {
-      case R.id.triblurRadioBackground0: privateBackgroundColor(0); break;
-      case R.id.triblurRadioBackground1: privateBackgroundColor(1); break;
-      case R.id.triblurRadioBackground2: privateBackgroundColor(2); break;
-      }
+    int id = v.getId();
+
+    if( id == R.id.triblurRadioBackground0 ) privateBackgroundColor(0);
+    if( id == R.id.triblurRadioBackground1 ) privateBackgroundColor(1);
+    if( id == R.id.triblurRadioBackground2 ) privateBackgroundColor(2);
     }
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
