commit bf0bc90ff6ad5c583682c4bc23014f69e23668c8
Author: Leszek Koltunski <leszek@distoretedandroid.org>
Date:   Thu Apr 27 14:56:06 2017 +0100

    Mipmap levels!

diff --git a/src/main/java/org/distorted/examples/multiblur/MultiblurActivity.java b/src/main/java/org/distorted/examples/multiblur/MultiblurActivity.java
index 6307507..e7b679b 100644
--- a/src/main/java/org/distorted/examples/multiblur/MultiblurActivity.java
+++ b/src/main/java/org/distorted/examples/multiblur/MultiblurActivity.java
@@ -28,6 +28,7 @@ import android.widget.SeekBar;
 
 import org.distorted.examples.R;
 import org.distorted.library.Distorted;
+import org.distorted.library.EffectQuality;
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
@@ -163,4 +164,40 @@ public class MultiblurActivity extends Activity implements SeekBar.OnSeekBarChan
       case R.id.multiblurCheckBox7  : sView.getRenderer().setChecked(7,checked); break;
       }
     }
+
+///////////////////////////////////////////////////////////////////////////////////////////////////
+
+  public void quality0(View v)
+    {
+    MultiblurSurfaceView view = (MultiblurSurfaceView) this.findViewById(R.id.multiblurSurfaceView);
+    MultiblurRenderer renderer = view.getRenderer();
+    renderer.setQuality(EffectQuality.HIGHEST);
+    }
+
+///////////////////////////////////////////////////////////////////////////////////////////////////
+
+  public void quality1(View v)
+    {
+    MultiblurSurfaceView view = (MultiblurSurfaceView) this.findViewById(R.id.multiblurSurfaceView);
+    MultiblurRenderer renderer = view.getRenderer();
+    renderer.setQuality(EffectQuality.HIGH);
+    }
+
+///////////////////////////////////////////////////////////////////////////////////////////////////
+
+  public void quality2(View v)
+    {
+    MultiblurSurfaceView view = (MultiblurSurfaceView) this.findViewById(R.id.multiblurSurfaceView);
+    MultiblurRenderer renderer = view.getRenderer();
+    renderer.setQuality(EffectQuality.MEDIUM);
+    }
+
+///////////////////////////////////////////////////////////////////////////////////////////////////
+
+  public void quality3(View v)
+    {
+    MultiblurSurfaceView view = (MultiblurSurfaceView) this.findViewById(R.id.multiblurSurfaceView);
+    MultiblurRenderer renderer = view.getRenderer();
+    renderer.setQuality(EffectQuality.LOW);
+    }
 }
diff --git a/src/main/java/org/distorted/examples/multiblur/MultiblurRenderer.java b/src/main/java/org/distorted/examples/multiblur/MultiblurRenderer.java
index d30fb6a..806f319 100644
--- a/src/main/java/org/distorted/examples/multiblur/MultiblurRenderer.java
+++ b/src/main/java/org/distorted/examples/multiblur/MultiblurRenderer.java
@@ -33,6 +33,7 @@ import org.distorted.library.DistortedNode;
 import org.distorted.library.DistortedScreen;
 import org.distorted.library.DistortedTexture;
 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;
@@ -176,7 +177,14 @@ class MultiblurRenderer implements GLSurfaceView.Renderer
       }
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
-   
+
+    void setQuality(EffectQuality quality)
+      {
+      mPostEffects.setQuality(quality);
+      }
+
+///////////////////////////////////////////////////////////////////////////////////////////////////
+
     public void onDrawFrame(GL10 glUnused) 
       {
       mPaint.setColor(0xffffffff);
diff --git a/src/main/res/layout/fbolayout.xml b/src/main/res/layout/fbolayout.xml
index 0c5e57d..bab6314 100644
--- a/src/main/res/layout/fbolayout.xml
+++ b/src/main/res/layout/fbolayout.xml
@@ -15,28 +15,28 @@
         android:layout_width="fill_parent"
         android:layout_height="wrap_content"
         android:gravity="center|fill_horizontal"
-        android:orientation="vertical" >
+        android:orientation="vertical">
 
         <RadioGroup
             android:id="@+id/radioGroup1"
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
-            android:orientation="horizontal" >
-			
+            android:orientation="horizontal">
+
             <RadioButton
                 android:id="@+id/deformDistortButton"
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
                 android:checked="true"
                 android:onClick="DepthYes"
-                android:text="@string/DepthYes" />
+                android:text="@string/DepthYes"/>
 
             <RadioButton
                 android:id="@+id/deformDeformButton"
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
                 android:onClick="DepthNo"
-                android:text="@string/DepthNo" />
+                android:text="@string/DepthNo"/>
 
         </RadioGroup>
 
diff --git a/src/main/res/layout/multiblurlayout.xml b/src/main/res/layout/multiblurlayout.xml
index dde2b33..9b925dc 100644
--- a/src/main/res/layout/multiblurlayout.xml
+++ b/src/main/res/layout/multiblurlayout.xml
@@ -82,36 +82,90 @@
                 android:onClick="onClick"
                 android:layout_weight="1"
                 android:checked="false"/>
-             <CheckBox
-                 android:layout_width="wrap_content"
-                 android:layout_height="match_parent"
-                 android:id="@+id/multiblurCheckBox4"
-                 android:onClick="onClick"
-                 android:layout_weight="1"
-                 android:checked="false"/>
-             <CheckBox
-                 android:layout_width="wrap_content"
-                 android:layout_height="match_parent"
-                 android:id="@+id/multiblurCheckBox5"
-                 android:onClick="onClick"
-                 android:layout_weight="1"
-                 android:checked="false"/>
-             <CheckBox
-                 android:layout_width="wrap_content"
-                 android:layout_height="match_parent"
-                 android:id="@+id/multiblurCheckBox6"
-                 android:onClick="onClick"
-                 android:layout_weight="1"
-                 android:checked="false"/>
-             <CheckBox
-                 android:layout_width="wrap_content"
-                 android:layout_height="match_parent"
-                 android:id="@+id/multiblurCheckBox7"
-                 android:onClick="onClick"
-                 android:layout_weight="1"
-                 android:checked="false"/>
+            <CheckBox
+                android:layout_width="wrap_content"
+                android:layout_height="match_parent"
+                android:id="@+id/multiblurCheckBox4"
+                android:onClick="onClick"
+                android:layout_weight="1"
+                android:checked="false"/>
+            <CheckBox
+                android:layout_width="wrap_content"
+                android:layout_height="match_parent"
+                android:id="@+id/multiblurCheckBox5"
+                android:onClick="onClick"
+                android:layout_weight="1"
+                android:checked="false"/>
+            <CheckBox
+                android:layout_width="wrap_content"
+                android:layout_height="match_parent"
+                android:id="@+id/multiblurCheckBox6"
+                android:onClick="onClick"
+                android:layout_weight="1"
+                android:checked="false"/>
+            <CheckBox
+                android:layout_width="wrap_content"
+                android:layout_height="match_parent"
+                android:id="@+id/multiblurCheckBox7"
+                android:onClick="onClick"
+                android:layout_weight="1"
+                android:checked="false"/>
+
         </LinearLayout>
 
     </LinearLayout>
 
+    <LinearLayout
+        android:id="@+id/linearLayout3"
+        android:layout_width="fill_parent"
+        android:layout_height="wrap_content"
+        android:gravity="center|fill_horizontal"
+        android:orientation="horizontal"
+        android:background="@color/blue"
+        android:paddingBottom="10dp"
+        android:paddingTop="10dp" >
+
+        <RadioGroup
+            android:id="@+id/multiblurRadioGroup"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:orientation="horizontal">
+
+            <RadioButton
+                android:id="@+id/multiblurRadioQuality0"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:layout_weight="1"
+                android:checked="true"
+                android:onClick="quality0"
+                android:text="@string/quality0"/>
+
+            <RadioButton
+                android:id="@+id/multiblurRadioQuality1"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:layout_weight="1"
+                android:onClick="quality1"
+                android:text="@string/quality1"/>
+
+            <RadioButton
+                android:id="@+id/multiblurRadioQuality2"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:layout_weight="1"
+                android:onClick="quality2"
+                android:text="@string/quality2"/>
+
+            <RadioButton
+                android:id="@+id/multiblurRadioQuality3"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:layout_weight="1"
+                android:onClick="quality3"
+                android:text="@string/quality3"/>
+
+        </RadioGroup>
+
+    </LinearLayout>
+
 </LinearLayout>
\ No newline at end of file
diff --git a/src/main/res/values/strings.xml b/src/main/res/values/strings.xml
index aa2de6f..e5d2d12 100644
--- a/src/main/res/values/strings.xml
+++ b/src/main/res/values/strings.xml
@@ -61,6 +61,10 @@
     <string name="DepthYes">Depth</string>
     <string name="DepthNo">No Depth</string>
     <string name="mesh">Mesh</string>
+    <string name="quality0">Highest</string>
+    <string name="quality1">High</string>
+    <string name="quality2">Medium</string>
+    <string name="quality3">Low</string>
 
     <string name="radius_placeholder">Radius: %1$s</string>
     <string name="noise_placeholder">Noise %1$s</string>
