commit 1f9a52f13e3c66597f387a46fe64cadbf2fd58ee
Author: leszek <leszek@koltunski.pl>
Date:   Sat May 13 01:16:07 2017 +0100

    Simplify setting up DistortedScreen.

diff --git a/src/main/java/org/distorted/examples/aroundtheworld/AroundTheWorldRenderer.java b/src/main/java/org/distorted/examples/aroundtheworld/AroundTheWorldRenderer.java
index 7e900d3..5577a5b 100644
--- a/src/main/java/org/distorted/examples/aroundtheworld/AroundTheWorldRenderer.java
+++ b/src/main/java/org/distorted/examples/aroundtheworld/AroundTheWorldRenderer.java
@@ -62,7 +62,7 @@ class AroundTheWorldRenderer implements GLSurfaceView.Renderer
       mManager = new AroundTheWorldEffectsManager();
       mEffects = new DistortedEffects();
       mManager.apply(mEffects);
-      mScreen = new DistortedScreen();
+      mScreen = new DistortedScreen(mView);
       mScreen.glClearColor(0.5f, 0.5f, 0.5f, 1.0f);
       }
 
diff --git a/src/main/java/org/distorted/examples/aroundtheworld/AroundTheWorldSurfaceView.java b/src/main/java/org/distorted/examples/aroundtheworld/AroundTheWorldSurfaceView.java
index 4c9add8..763940a 100644
--- a/src/main/java/org/distorted/examples/aroundtheworld/AroundTheWorldSurfaceView.java
+++ b/src/main/java/org/distorted/examples/aroundtheworld/AroundTheWorldSurfaceView.java
@@ -19,9 +19,7 @@
 
 package org.distorted.examples.aroundtheworld;
 
-import android.app.ActivityManager;
 import android.content.Context;
-import android.content.pm.ConfigurationInfo;
 import android.opengl.GLSurfaceView;
 import android.util.AttributeSet;
 
@@ -39,9 +37,6 @@ class AroundTheWorldSurfaceView extends GLSurfaceView
 
       if(!isInEditMode())
         {
-        final ActivityManager activityManager     = (android.app.ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
-        final ConfigurationInfo configurationInfo = activityManager.getDeviceConfigurationInfo();
-        setEGLContextClientVersion( (configurationInfo.reqGlEsVersion>>16) >= 3 ? 3:2 );
         mRenderer = new AroundTheWorldRenderer(this);
         setRenderer(mRenderer);
         }
diff --git a/src/main/java/org/distorted/examples/bean/BeanRenderer.java b/src/main/java/org/distorted/examples/bean/BeanRenderer.java
index 93b9bd4..a14ef87 100644
--- a/src/main/java/org/distorted/examples/bean/BeanRenderer.java
+++ b/src/main/java/org/distorted/examples/bean/BeanRenderer.java
@@ -89,7 +89,7 @@ class BeanRenderer implements GLSurfaceView.Renderer
       mEffects.distort(dLeft , pLeft , rLeft );
       mEffects.distort(dRight, pRight, rRight);
 
-      mScreen = new DistortedScreen();
+      mScreen = new DistortedScreen(mView);
       }
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
diff --git a/src/main/java/org/distorted/examples/bean/BeanSurfaceView.java b/src/main/java/org/distorted/examples/bean/BeanSurfaceView.java
index f9c859e..32a6cfe 100644
--- a/src/main/java/org/distorted/examples/bean/BeanSurfaceView.java
+++ b/src/main/java/org/distorted/examples/bean/BeanSurfaceView.java
@@ -19,11 +19,8 @@
 
 package org.distorted.examples.bean;
 
-import android.app.ActivityManager;
 import android.content.Context;
-import android.content.pm.ConfigurationInfo;
 import android.opengl.GLSurfaceView;
-import android.os.Build;
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
@@ -34,9 +31,6 @@ class BeanSurfaceView extends GLSurfaceView
     public BeanSurfaceView(Context context) 
       {
       super(context);
-      final ActivityManager activityManager     = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
-      final ConfigurationInfo configurationInfo = activityManager.getDeviceConfigurationInfo();
-      setEGLContextClientVersion( (configurationInfo.reqGlEsVersion>>16) >= 3 ? 3:2 );
       setRenderer(new BeanRenderer(this));
       }
 }
diff --git a/src/main/java/org/distorted/examples/blur/BlurRenderer.java b/src/main/java/org/distorted/examples/blur/BlurRenderer.java
index af63e25..6314370 100644
--- a/src/main/java/org/distorted/examples/blur/BlurRenderer.java
+++ b/src/main/java/org/distorted/examples/blur/BlurRenderer.java
@@ -64,7 +64,7 @@ class BlurRenderer implements GLSurfaceView.Renderer
       mMesh        = new MeshFlat(1,1);
       mEffects     = new DistortedEffects();
       mPostEffects = new DistortedEffectsPostprocess();
-      mScreen      = new DistortedScreen();
+      mScreen      = new DistortedScreen(mView);
 
       mRadiusSta = new Static1D(5);
       Dynamic1D radiusDyn = new Dynamic1D();
diff --git a/src/main/java/org/distorted/examples/blur/BlurSurfaceView.java b/src/main/java/org/distorted/examples/blur/BlurSurfaceView.java
index 5cac3b3..b6033c9 100644
--- a/src/main/java/org/distorted/examples/blur/BlurSurfaceView.java
+++ b/src/main/java/org/distorted/examples/blur/BlurSurfaceView.java
@@ -19,9 +19,7 @@
 
 package org.distorted.examples.blur;
 
-import android.app.ActivityManager;
 import android.content.Context;
-import android.content.pm.ConfigurationInfo;
 import android.opengl.GLSurfaceView;
 import android.util.AttributeSet;
 
@@ -39,9 +37,6 @@ class BlurSurfaceView extends GLSurfaceView
 
       if(!isInEditMode())
         {
-        final ActivityManager activityManager     = (android.app.ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
-        final ConfigurationInfo configurationInfo = activityManager.getDeviceConfigurationInfo();
-        setEGLContextClientVersion( (configurationInfo.reqGlEsVersion>>16) >= 3 ? 3:2 );
         mRenderer = new BlurRenderer(this);
         setRenderer(mRenderer);
         }
diff --git a/src/main/java/org/distorted/examples/catanddog/CatAndDogRenderer.java b/src/main/java/org/distorted/examples/catanddog/CatAndDogRenderer.java
index 1d24c2e..b9efc24 100644
--- a/src/main/java/org/distorted/examples/catanddog/CatAndDogRenderer.java
+++ b/src/main/java/org/distorted/examples/catanddog/CatAndDogRenderer.java
@@ -78,7 +78,7 @@ class CatAndDogRenderer implements GLSurfaceView.Renderer
 
       mEffects.alpha( alphaDyn, alphaRegion, false );
 
-      mScreen = new DistortedScreen();
+      mScreen = new DistortedScreen(mView);
       }
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
diff --git a/src/main/java/org/distorted/examples/catanddog/CatAndDogSurfaceView.java b/src/main/java/org/distorted/examples/catanddog/CatAndDogSurfaceView.java
index d3f0acd..27b2e9a 100644
--- a/src/main/java/org/distorted/examples/catanddog/CatAndDogSurfaceView.java
+++ b/src/main/java/org/distorted/examples/catanddog/CatAndDogSurfaceView.java
@@ -19,9 +19,7 @@
 
 package org.distorted.examples.catanddog;
 
-import android.app.ActivityManager;
 import android.content.Context;
-import android.content.pm.ConfigurationInfo;
 import android.opengl.GLSurfaceView;
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
@@ -33,9 +31,6 @@ class CatAndDogSurfaceView extends GLSurfaceView
     public CatAndDogSurfaceView(Context context)
       {
       super(context);
-      final ActivityManager activityManager     = (android.app.ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
-      final ConfigurationInfo configurationInfo = activityManager.getDeviceConfigurationInfo();
-      setEGLContextClientVersion( (configurationInfo.reqGlEsVersion>>16) >= 3 ? 3:2 );
       setRenderer(new CatAndDogRenderer(this));
       }
 }
diff --git a/src/main/java/org/distorted/examples/check/CheckRenderer.java b/src/main/java/org/distorted/examples/check/CheckRenderer.java
index 5f97b8d..494aeb4 100644
--- a/src/main/java/org/distorted/examples/check/CheckRenderer.java
+++ b/src/main/java/org/distorted/examples/check/CheckRenderer.java
@@ -75,7 +75,7 @@ class CheckRenderer implements GLSurfaceView.Renderer
       DistortedEffects.setMaxVertex(act.getMaxV());
       DistortedEffects.setMaxFragment(act.getMaxF());
 
-      mScreen = new DistortedScreen();
+      mScreen = new DistortedScreen(mView);
       }
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
diff --git a/src/main/java/org/distorted/examples/check/CheckSurfaceView.java b/src/main/java/org/distorted/examples/check/CheckSurfaceView.java
index 747c0bb..50373b1 100644
--- a/src/main/java/org/distorted/examples/check/CheckSurfaceView.java
+++ b/src/main/java/org/distorted/examples/check/CheckSurfaceView.java
@@ -19,9 +19,7 @@
 
 package org.distorted.examples.check;
 
-import android.app.ActivityManager;
 import android.content.Context;
-import android.content.pm.ConfigurationInfo;
 import android.opengl.GLSurfaceView;
 import android.util.AttributeSet;
 
@@ -34,14 +32,6 @@ class CheckSurfaceView extends GLSurfaceView
     public CheckSurfaceView(Context context, AttributeSet attrs)
       {
       super(context, attrs);
-    
-      if(!isInEditMode())
-        {
-        final ActivityManager activityManager     = (android.app.ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
-        final ConfigurationInfo configurationInfo = activityManager.getDeviceConfigurationInfo();
-        setEGLContextClientVersion( (configurationInfo.reqGlEsVersion>>16) >= 3 ? 3:2 );
-        setRenderer(new CheckRenderer(this));
-        }
+      if(!isInEditMode()) setRenderer(new CheckRenderer(this));
       }
-
 }
diff --git a/src/main/java/org/distorted/examples/cubes/CubesRenderer.java b/src/main/java/org/distorted/examples/cubes/CubesRenderer.java
index 1ec6196..3820632 100644
--- a/src/main/java/org/distorted/examples/cubes/CubesRenderer.java
+++ b/src/main/java/org/distorted/examples/cubes/CubesRenderer.java
@@ -82,7 +82,7 @@ class CubesRenderer implements GLSurfaceView.Renderer
       mQuatInt1.add(mQuat1);
       mQuatInt2.add(mQuat2);
 
-      mScreen = new DistortedScreen();
+      mScreen = new DistortedScreen(mView);
       }
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
diff --git a/src/main/java/org/distorted/examples/cubes/CubesSurfaceView.java b/src/main/java/org/distorted/examples/cubes/CubesSurfaceView.java
index 8072f91..c3996c5 100644
--- a/src/main/java/org/distorted/examples/cubes/CubesSurfaceView.java
+++ b/src/main/java/org/distorted/examples/cubes/CubesSurfaceView.java
@@ -21,9 +21,7 @@ package org.distorted.examples.cubes;
 
 import org.distorted.examples.R;
 
-import android.app.ActivityManager;
 import android.content.Context;
-import android.content.pm.ConfigurationInfo;
 import android.opengl.GLSurfaceView;
 import android.util.AttributeSet;
 import android.view.MotionEvent;
@@ -47,9 +45,6 @@ class CubesSurfaceView extends GLSurfaceView
       
       if(!isInEditMode())
         {
-        final ActivityManager activityManager     = (android.app.ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
-        final ConfigurationInfo configurationInfo = activityManager.getDeviceConfigurationInfo();
-        setEGLContextClientVersion( (configurationInfo.reqGlEsVersion>>16) >= 3 ? 3:2 );
         mRenderer = new CubesRenderer(this);
         setRenderer(mRenderer);
         Toast.makeText(context, R.string.example_rotate_toast , Toast.LENGTH_SHORT).show();
diff --git a/src/main/java/org/distorted/examples/deform/DeformRenderer.java b/src/main/java/org/distorted/examples/deform/DeformRenderer.java
index 67dc677..a96201e 100644
--- a/src/main/java/org/distorted/examples/deform/DeformRenderer.java
+++ b/src/main/java/org/distorted/examples/deform/DeformRenderer.java
@@ -164,7 +164,7 @@ class DeformRenderer implements GLSurfaceView.Renderer
 
       mMovingShearDynamic.add(vShear[0]);
 
-      mScreen = new DistortedScreen();
+      mScreen = new DistortedScreen(mView);
       }
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
diff --git a/src/main/java/org/distorted/examples/deform/DeformSurfaceView.java b/src/main/java/org/distorted/examples/deform/DeformSurfaceView.java
index 9f92bc7..703c320 100644
--- a/src/main/java/org/distorted/examples/deform/DeformSurfaceView.java
+++ b/src/main/java/org/distorted/examples/deform/DeformSurfaceView.java
@@ -19,9 +19,7 @@
 
 package org.distorted.examples.deform;
 
-import android.app.ActivityManager;
 import android.content.Context;
-import android.content.pm.ConfigurationInfo;
 import android.opengl.GLSurfaceView;
 import android.util.AttributeSet;
 import android.view.MotionEvent;
@@ -41,9 +39,6 @@ class DeformSurfaceView extends GLSurfaceView
     
       if(!isInEditMode())
         {
-        final ActivityManager activityManager     = (android.app.ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
-        final ConfigurationInfo configurationInfo = activityManager.getDeviceConfigurationInfo();
-        setEGLContextClientVersion( (configurationInfo.reqGlEsVersion>>16) >= 3 ? 3:2 );
         mRenderer = new DeformRenderer(this);
         setRenderer(mRenderer);
         }
diff --git a/src/main/java/org/distorted/examples/differentbitmaps/DifferentBitmapsRenderer.java b/src/main/java/org/distorted/examples/differentbitmaps/DifferentBitmapsRenderer.java
index cb9f8eb..b6f96d9 100644
--- a/src/main/java/org/distorted/examples/differentbitmaps/DifferentBitmapsRenderer.java
+++ b/src/main/java/org/distorted/examples/differentbitmaps/DifferentBitmapsRenderer.java
@@ -77,7 +77,7 @@ class DifferentBitmapsRenderer implements GLSurfaceView.Renderer
       mEffects[0].sink( new Static1D(8), mPoint, new Static4D(0,0,80,80));  // enlarge the nose
       mEffects[0].distort(dDistort,mPoint);                                 // keep moving the whole bitmap left and right.
 
-      mScreen = new DistortedScreen();
+      mScreen = new DistortedScreen(mView);
       mScreen.glClearColor(1.0f, 1.0f, 1.0f, 1.0f);
       }
 
diff --git a/src/main/java/org/distorted/examples/differentbitmaps/DifferentBitmapsSurfaceView.java b/src/main/java/org/distorted/examples/differentbitmaps/DifferentBitmapsSurfaceView.java
index 039b517..ff96258 100644
--- a/src/main/java/org/distorted/examples/differentbitmaps/DifferentBitmapsSurfaceView.java
+++ b/src/main/java/org/distorted/examples/differentbitmaps/DifferentBitmapsSurfaceView.java
@@ -19,9 +19,7 @@
 
 package org.distorted.examples.differentbitmaps;
 
-import android.app.ActivityManager;
 import android.content.Context;
-import android.content.pm.ConfigurationInfo;
 import android.opengl.GLSurfaceView;
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
@@ -33,9 +31,6 @@ class DifferentBitmapsSurfaceView extends GLSurfaceView
     public DifferentBitmapsSurfaceView(Context context) 
       {
       super(context);
-      final ActivityManager activityManager     = (android.app.ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
-      final ConfigurationInfo configurationInfo = activityManager.getDeviceConfigurationInfo();
-      setEGLContextClientVersion( (configurationInfo.reqGlEsVersion>>16) >= 3 ? 3:2 );
       setRenderer(new DifferentBitmapsRenderer(this));
       }
 }
diff --git a/src/main/java/org/distorted/examples/differenteffects/DifferentEffectsRenderer.java b/src/main/java/org/distorted/examples/differenteffects/DifferentEffectsRenderer.java
index 8b5cb33..99e1122 100644
--- a/src/main/java/org/distorted/examples/differenteffects/DifferentEffectsRenderer.java
+++ b/src/main/java/org/distorted/examples/differenteffects/DifferentEffectsRenderer.java
@@ -94,7 +94,7 @@ class DifferentEffectsRenderer implements GLSurfaceView.Renderer
 
       mEffects[2].chroma(chromaDyn, new Static3D(0,1,0) );
 
-      mScreen = new DistortedScreen();
+      mScreen = new DistortedScreen(mView);
       }
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
diff --git a/src/main/java/org/distorted/examples/differenteffects/DifferentEffectsSurfaceView.java b/src/main/java/org/distorted/examples/differenteffects/DifferentEffectsSurfaceView.java
index 83af040..40e1cc8 100644
--- a/src/main/java/org/distorted/examples/differenteffects/DifferentEffectsSurfaceView.java
+++ b/src/main/java/org/distorted/examples/differenteffects/DifferentEffectsSurfaceView.java
@@ -19,9 +19,7 @@
 
 package org.distorted.examples.differenteffects;
 
-import android.app.ActivityManager;
 import android.content.Context;
-import android.content.pm.ConfigurationInfo;
 import android.opengl.GLSurfaceView;
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
@@ -33,9 +31,6 @@ class DifferentEffectsSurfaceView extends GLSurfaceView
     public DifferentEffectsSurfaceView(Context context) 
       {
       super(context);
-      final ActivityManager activityManager     = (android.app.ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
-      final ConfigurationInfo configurationInfo = activityManager.getDeviceConfigurationInfo();
-      setEGLContextClientVersion( (configurationInfo.reqGlEsVersion>>16) >= 3 ? 3:2 );
       setRenderer(new DifferentEffectsRenderer(this));
       }
 }
diff --git a/src/main/java/org/distorted/examples/dynamic/DynamicRenderer.java b/src/main/java/org/distorted/examples/dynamic/DynamicRenderer.java
index cfdac4a..f4d76f2 100644
--- a/src/main/java/org/distorted/examples/dynamic/DynamicRenderer.java
+++ b/src/main/java/org/distorted/examples/dynamic/DynamicRenderer.java
@@ -62,7 +62,7 @@ class DynamicRenderer implements GLSurfaceView.Renderer
      mView    = v;
      mMesh    = new MeshFlat(1,1);
      mEffects = new DistortedEffects();
-     mScreen  = new DistortedScreen();
+     mScreen  = new DistortedScreen(mView);
      }
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
diff --git a/src/main/java/org/distorted/examples/dynamic/DynamicSurfaceView.java b/src/main/java/org/distorted/examples/dynamic/DynamicSurfaceView.java
index 2f1bfaa..cad4468 100644
--- a/src/main/java/org/distorted/examples/dynamic/DynamicSurfaceView.java
+++ b/src/main/java/org/distorted/examples/dynamic/DynamicSurfaceView.java
@@ -19,9 +19,7 @@
 
 package org.distorted.examples.dynamic;
 
-import android.app.ActivityManager;
 import android.content.Context;
-import android.content.pm.ConfigurationInfo;
 import android.opengl.GLSurfaceView;
 import android.view.MotionEvent;
 import android.util.AttributeSet;
@@ -110,9 +108,6 @@ public class DynamicSurfaceView extends GLSurfaceView
         {
         setFocusable(true);
         setFocusableInTouchMode(true);
-        final ActivityManager activityManager     = (android.app.ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
-        final ConfigurationInfo configurationInfo = activityManager.getDeviceConfigurationInfo();
-        setEGLContextClientVersion( (configurationInfo.reqGlEsVersion>>16) >= 3 ? 3:2 );
         DynamicRenderer mRenderer = new DynamicRenderer(this);
         setRenderer(mRenderer);
         }
diff --git a/src/main/java/org/distorted/examples/effectqueue/EffectQueueRenderer.java b/src/main/java/org/distorted/examples/effectqueue/EffectQueueRenderer.java
index 3fb43d5..2d032ec 100644
--- a/src/main/java/org/distorted/examples/effectqueue/EffectQueueRenderer.java
+++ b/src/main/java/org/distorted/examples/effectqueue/EffectQueueRenderer.java
@@ -76,7 +76,7 @@ class EffectQueueRenderer implements GLSurfaceView.Renderer, EffectListener
 
     mEffects.registerForMessages(this);
 
-    mScreen = new DistortedScreen();
+    mScreen = new DistortedScreen(mView);
     }
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
diff --git a/src/main/java/org/distorted/examples/effectqueue/EffectQueueSurfaceView.java b/src/main/java/org/distorted/examples/effectqueue/EffectQueueSurfaceView.java
index 1943bf8..6a16433 100644
--- a/src/main/java/org/distorted/examples/effectqueue/EffectQueueSurfaceView.java
+++ b/src/main/java/org/distorted/examples/effectqueue/EffectQueueSurfaceView.java
@@ -19,9 +19,7 @@
 
 package org.distorted.examples.effectqueue;
 
-import android.app.ActivityManager;
 import android.content.Context;
-import android.content.pm.ConfigurationInfo;
 import android.opengl.GLSurfaceView;
 import android.view.MotionEvent;
 import android.util.AttributeSet;
@@ -87,9 +85,6 @@ public class EffectQueueSurfaceView extends GLSurfaceView
       {
       setFocusable(true);
       setFocusableInTouchMode(true);
-      final ActivityManager activityManager     = (android.app.ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
-      final ConfigurationInfo configurationInfo = activityManager.getDeviceConfigurationInfo();
-      setEGLContextClientVersion( (configurationInfo.reqGlEsVersion>>16) >= 3 ? 3:2 );
 
       mRenderer = new EffectQueueRenderer(this);
       setRenderer(mRenderer);
diff --git a/src/main/java/org/distorted/examples/effects3d/Effects3DRenderer.java b/src/main/java/org/distorted/examples/effects3d/Effects3DRenderer.java
index 2e5a368..7fc4594 100644
--- a/src/main/java/org/distorted/examples/effects3d/Effects3DRenderer.java
+++ b/src/main/java/org/distorted/examples/effects3d/Effects3DRenderer.java
@@ -119,7 +119,7 @@ class Effects3DRenderer implements GLSurfaceView.Renderer
       mCenterNode = new DistortedNode(mCenterTexture, mCenterEffects, quad);
       mRegionNode = new DistortedNode(mRegionTexture, mRegionEffects, quad);
 
-      mScreen = new DistortedScreen();
+      mScreen = new DistortedScreen(mView);
       mScreen.setProjection(FOV, NEAR);
       mScreen.attach(mBackgroundTexture, mBackgroundEffects, quad );
       mScreen.attach(mObjectTexture    , mObjectEffects    , meshO);
diff --git a/src/main/java/org/distorted/examples/effects3d/Effects3DSurfaceView.java b/src/main/java/org/distorted/examples/effects3d/Effects3DSurfaceView.java
index 8d30a8c..76456c1 100644
--- a/src/main/java/org/distorted/examples/effects3d/Effects3DSurfaceView.java
+++ b/src/main/java/org/distorted/examples/effects3d/Effects3DSurfaceView.java
@@ -19,9 +19,7 @@
 
 package org.distorted.examples.effects3d;
 
-import android.app.ActivityManager;
 import android.content.Context;
-import android.content.pm.ConfigurationInfo;
 import android.opengl.GLSurfaceView;
 import android.util.AttributeSet;
 import android.view.MotionEvent;
@@ -41,9 +39,6 @@ class Effects3DSurfaceView extends GLSurfaceView
       
     if(!isInEditMode())
       {
-      final ActivityManager activityManager     = (android.app.ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
-      final ConfigurationInfo configurationInfo = activityManager.getDeviceConfigurationInfo();
-      setEGLContextClientVersion( (configurationInfo.reqGlEsVersion>>16) >= 3 ? 3:2 );
       mRenderer = new Effects3DRenderer(this);
       setRenderer(mRenderer);
       }
diff --git a/src/main/java/org/distorted/examples/fbo/FBORenderer.java b/src/main/java/org/distorted/examples/fbo/FBORenderer.java
index 8a4c550..10d3778 100644
--- a/src/main/java/org/distorted/examples/fbo/FBORenderer.java
+++ b/src/main/java/org/distorted/examples/fbo/FBORenderer.java
@@ -68,7 +68,7 @@ class FBORenderer implements GLSurfaceView.Renderer
       mView   = v;
       mDepth  = true;
       mEffects= new DistortedEffects();
-      mScreen = new DistortedScreen();
+      mScreen = new DistortedScreen(mView);
       }
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
diff --git a/src/main/java/org/distorted/examples/fbo/FBOSurfaceView.java b/src/main/java/org/distorted/examples/fbo/FBOSurfaceView.java
index a149363..c346d89 100644
--- a/src/main/java/org/distorted/examples/fbo/FBOSurfaceView.java
+++ b/src/main/java/org/distorted/examples/fbo/FBOSurfaceView.java
@@ -19,9 +19,7 @@
 
 package org.distorted.examples.fbo;
 
-import android.app.ActivityManager;
 import android.content.Context;
-import android.content.pm.ConfigurationInfo;
 import android.opengl.GLSurfaceView;
 import android.util.AttributeSet;
 
@@ -39,9 +37,6 @@ class FBOSurfaceView extends GLSurfaceView
 
       if(!isInEditMode())
         {
-        final ActivityManager activityManager     = (android.app.ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
-        final ConfigurationInfo configurationInfo = activityManager.getDeviceConfigurationInfo();
-        setEGLContextClientVersion( (configurationInfo.reqGlEsVersion>>16) >= 3 ? 3:2 );
         mRenderer = new FBORenderer(this);
         setRenderer(mRenderer);
         }
diff --git a/src/main/java/org/distorted/examples/flag/FlagRenderer.java b/src/main/java/org/distorted/examples/flag/FlagRenderer.java
index d378581..8a19d7e 100644
--- a/src/main/java/org/distorted/examples/flag/FlagRenderer.java
+++ b/src/main/java/org/distorted/examples/flag/FlagRenderer.java
@@ -21,7 +21,6 @@ package org.distorted.examples.flag;
 
 import android.graphics.Bitmap;
 import android.graphics.BitmapFactory;
-import android.opengl.GLES30;
 import android.opengl.GLSurfaceView;
 
 import org.distorted.examples.R;
@@ -95,7 +94,7 @@ class FlagRenderer implements GLSurfaceView.Renderer
 
       mEffects.wave(mWaveDyn, waveCenter, waveRegion);
 
-      mScreen = new DistortedScreen();
+      mScreen = new DistortedScreen(mView);
       mScreen.attach(mTexture,mEffects, new MeshCubes(50,30,false) );
       }
 
diff --git a/src/main/java/org/distorted/examples/flag/FlagSurfaceView.java b/src/main/java/org/distorted/examples/flag/FlagSurfaceView.java
index 44e9d11..1ff1b3c 100644
--- a/src/main/java/org/distorted/examples/flag/FlagSurfaceView.java
+++ b/src/main/java/org/distorted/examples/flag/FlagSurfaceView.java
@@ -19,9 +19,7 @@
 
 package org.distorted.examples.flag;
 
-import android.app.ActivityManager;
 import android.content.Context;
-import android.content.pm.ConfigurationInfo;
 import android.opengl.GLSurfaceView;
 import android.util.AttributeSet;
 import android.view.MotionEvent;
@@ -44,9 +42,6 @@ class FlagSurfaceView extends GLSurfaceView
       
       if(!isInEditMode())
         {
-        final ActivityManager activityManager     = (android.app.ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
-        final ConfigurationInfo configurationInfo = activityManager.getDeviceConfigurationInfo();
-        setEGLContextClientVersion( (configurationInfo.reqGlEsVersion>>16) >= 3 ? 3:2 );
         mRenderer = new FlagRenderer(this);
         setRenderer(mRenderer);
         }
diff --git a/src/main/java/org/distorted/examples/girl/GirlRenderer.java b/src/main/java/org/distorted/examples/girl/GirlRenderer.java
index cc0fe8b..879ab8f 100644
--- a/src/main/java/org/distorted/examples/girl/GirlRenderer.java
+++ b/src/main/java/org/distorted/examples/girl/GirlRenderer.java
@@ -121,7 +121,7 @@ class GirlRenderer implements GLSurfaceView.Renderer
 
       mEffects.swirl(diHips, pHips, HipsRegion );
 
-      mScreen = new DistortedScreen();
+      mScreen = new DistortedScreen(mView);
       }
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
diff --git a/src/main/java/org/distorted/examples/girl/GirlSurfaceView.java b/src/main/java/org/distorted/examples/girl/GirlSurfaceView.java
index a3c4299..b897b5b 100644
--- a/src/main/java/org/distorted/examples/girl/GirlSurfaceView.java
+++ b/src/main/java/org/distorted/examples/girl/GirlSurfaceView.java
@@ -19,9 +19,7 @@
 
 package org.distorted.examples.girl;
 
-import android.app.ActivityManager;
 import android.content.Context;
-import android.content.pm.ConfigurationInfo;
 import android.opengl.GLSurfaceView;
 import android.util.AttributeSet;
 
@@ -39,9 +37,6 @@ class GirlSurfaceView extends GLSurfaceView
 
       if(!isInEditMode())
         {
-        final ActivityManager activityManager     = (android.app.ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
-        final ConfigurationInfo configurationInfo = activityManager.getDeviceConfigurationInfo();
-        setEGLContextClientVersion( (configurationInfo.reqGlEsVersion>>16) >= 3 ? 3:2 );
         mRenderer = new GirlRenderer(this);
         setRenderer(mRenderer);
         }
diff --git a/src/main/java/org/distorted/examples/listener/ListenerRenderer.java b/src/main/java/org/distorted/examples/listener/ListenerRenderer.java
index 2466248..0c2a867 100644
--- a/src/main/java/org/distorted/examples/listener/ListenerRenderer.java
+++ b/src/main/java/org/distorted/examples/listener/ListenerRenderer.java
@@ -67,7 +67,7 @@ class ListenerRenderer implements GLSurfaceView.Renderer,EffectListener
       mView = v;
       mEffects = new DistortedEffects();
       mEffects.registerForMessages(this);
-      mScreen = new DistortedScreen();
+      mScreen = new DistortedScreen(mView);
       mRnd = new Random(0);
       }
 
diff --git a/src/main/java/org/distorted/examples/listener/ListenerSurfaceView.java b/src/main/java/org/distorted/examples/listener/ListenerSurfaceView.java
index 979f07e..60823ad 100644
--- a/src/main/java/org/distorted/examples/listener/ListenerSurfaceView.java
+++ b/src/main/java/org/distorted/examples/listener/ListenerSurfaceView.java
@@ -19,9 +19,7 @@
 
 package org.distorted.examples.listener;
 
-import android.app.ActivityManager;
 import android.content.Context;
-import android.content.pm.ConfigurationInfo;
 import android.opengl.GLSurfaceView;
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
@@ -33,9 +31,6 @@ class ListenerSurfaceView extends GLSurfaceView
     public ListenerSurfaceView(Context context) 
       {
       super(context);
-      final ActivityManager activityManager     = (android.app.ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
-      final ConfigurationInfo configurationInfo = activityManager.getDeviceConfigurationInfo();
-      setEGLContextClientVersion( (configurationInfo.reqGlEsVersion>>16) >= 3 ? 3:2 );
       setRenderer(new ListenerRenderer(this));
       }
 }
diff --git a/src/main/java/org/distorted/examples/matrix3d/Matrix3DRenderer.java b/src/main/java/org/distorted/examples/matrix3d/Matrix3DRenderer.java
index 1ab7dda..95c13c7 100644
--- a/src/main/java/org/distorted/examples/matrix3d/Matrix3DRenderer.java
+++ b/src/main/java/org/distorted/examples/matrix3d/Matrix3DRenderer.java
@@ -46,7 +46,7 @@ class Matrix3DRenderer implements GLSurfaceView.Renderer
       mView = v;
       Matrix3DActivity act = (Matrix3DActivity)v.getContext();
       mTexture= act.getTexture();
-      mScreen = new DistortedScreen();
+      mScreen = new DistortedScreen(mView);
       mScreen.attach(mTexture,act.getEffects(),act.getMesh());
       mScreen.setProjection(60.0f,0.1f);
       }
diff --git a/src/main/java/org/distorted/examples/matrix3d/Matrix3DSurfaceView.java b/src/main/java/org/distorted/examples/matrix3d/Matrix3DSurfaceView.java
index 8aa56c3..08bae53 100644
--- a/src/main/java/org/distorted/examples/matrix3d/Matrix3DSurfaceView.java
+++ b/src/main/java/org/distorted/examples/matrix3d/Matrix3DSurfaceView.java
@@ -19,9 +19,7 @@
 
 package org.distorted.examples.matrix3d;
 
-import android.app.ActivityManager;
 import android.content.Context;
-import android.content.pm.ConfigurationInfo;
 import android.opengl.GLSurfaceView;
 import android.util.AttributeSet;
 
@@ -39,9 +37,6 @@ class Matrix3DSurfaceView extends GLSurfaceView
       
     if(!isInEditMode())
       {
-      final ActivityManager activityManager     = (android.app.ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
-      final ConfigurationInfo configurationInfo = activityManager.getDeviceConfigurationInfo();
-      setEGLContextClientVersion( (configurationInfo.reqGlEsVersion>>16) >= 3 ? 3:2 );
       mRenderer = new Matrix3DRenderer(this);
       setRenderer(mRenderer);
       }
@@ -53,6 +48,5 @@ class Matrix3DSurfaceView extends GLSurfaceView
     {
     return mRenderer;
     }
-
   }
 
diff --git a/src/main/java/org/distorted/examples/mirror/MirrorRenderer.java b/src/main/java/org/distorted/examples/mirror/MirrorRenderer.java
index 2305348..cf4d320 100644
--- a/src/main/java/org/distorted/examples/mirror/MirrorRenderer.java
+++ b/src/main/java/org/distorted/examples/mirror/MirrorRenderer.java
@@ -72,7 +72,7 @@ class MirrorRenderer implements GLSurfaceView.Renderer
       { 
       mView    = view;
       mQuad    = new MeshFlat(1,1);
-      mScreen  = new DistortedScreen();
+      mScreen  = new DistortedScreen(mView);
 
       mEffectsMirror    = new DistortedEffects();
       mEffectsHead      = new DistortedEffects();
diff --git a/src/main/java/org/distorted/examples/mirror/MirrorSurfaceView.java b/src/main/java/org/distorted/examples/mirror/MirrorSurfaceView.java
index 9e6acef..d360595 100644
--- a/src/main/java/org/distorted/examples/mirror/MirrorSurfaceView.java
+++ b/src/main/java/org/distorted/examples/mirror/MirrorSurfaceView.java
@@ -19,9 +19,7 @@
 
 package org.distorted.examples.mirror;
 
-import android.app.ActivityManager;
 import android.content.Context;
-import android.content.pm.ConfigurationInfo;
 import android.opengl.GLSurfaceView;
 import android.util.AttributeSet;
 
@@ -39,13 +37,11 @@ class MirrorSurfaceView extends GLSurfaceView
 
       if(!isInEditMode())
         {
-        final ActivityManager activityManager     = (android.app.ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
-        final ConfigurationInfo configurationInfo = activityManager.getDeviceConfigurationInfo();
-        setEGLContextClientVersion( (configurationInfo.reqGlEsVersion>>16) >= 3 ? 3:2 );
         mRenderer = new MirrorRenderer(this);
         setRenderer(mRenderer);
         }
       }
+
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
     public MirrorRenderer getRenderer()
diff --git a/src/main/java/org/distorted/examples/monalisa/MonaLisaRenderer.java b/src/main/java/org/distorted/examples/monalisa/MonaLisaRenderer.java
index 14e1171..4a76791 100644
--- a/src/main/java/org/distorted/examples/monalisa/MonaLisaRenderer.java
+++ b/src/main/java/org/distorted/examples/monalisa/MonaLisaRenderer.java
@@ -74,7 +74,7 @@ class MonaLisaRenderer implements GLSurfaceView.Renderer
       mEffects.distort( dLeft, pLeft , rLeft );
       mEffects.distort(dRight, pRight, rRight);
 
-      mScreen = new DistortedScreen();
+      mScreen = new DistortedScreen(mView);
       }
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
diff --git a/src/main/java/org/distorted/examples/monalisa/MonaLisaSurfaceView.java b/src/main/java/org/distorted/examples/monalisa/MonaLisaSurfaceView.java
index 84c7fe1..88d3246 100644
--- a/src/main/java/org/distorted/examples/monalisa/MonaLisaSurfaceView.java
+++ b/src/main/java/org/distorted/examples/monalisa/MonaLisaSurfaceView.java
@@ -19,9 +19,7 @@
 
 package org.distorted.examples.monalisa;
 
-import android.app.ActivityManager;
 import android.content.Context;
-import android.content.pm.ConfigurationInfo;
 import android.opengl.GLSurfaceView;
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
@@ -33,9 +31,6 @@ class MonaLisaSurfaceView extends GLSurfaceView
     public MonaLisaSurfaceView(Context context) 
       {
       super(context);
-      final ActivityManager activityManager     = (android.app.ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
-      final ConfigurationInfo configurationInfo = activityManager.getDeviceConfigurationInfo();
-      setEGLContextClientVersion( (configurationInfo.reqGlEsVersion>>16) >= 3 ? 3:2 );
       setRenderer(new MonaLisaRenderer(this));
       }
 }
diff --git a/src/main/java/org/distorted/examples/movingeffects/MovingEffectsRenderer.java b/src/main/java/org/distorted/examples/movingeffects/MovingEffectsRenderer.java
index 67f33fb..edb19e3 100644
--- a/src/main/java/org/distorted/examples/movingeffects/MovingEffectsRenderer.java
+++ b/src/main/java/org/distorted/examples/movingeffects/MovingEffectsRenderer.java
@@ -62,7 +62,7 @@ class MovingEffectsRenderer implements GLSurfaceView.Renderer
 
      mView   = v;
      mEffects= new DistortedEffects();
-     mScreen = new DistortedScreen();
+     mScreen = new DistortedScreen(mView);
      mRefresh= true;
      }
 
diff --git a/src/main/java/org/distorted/examples/movingeffects/MovingEffectsSurfaceView.java b/src/main/java/org/distorted/examples/movingeffects/MovingEffectsSurfaceView.java
index 55f62e6..7ba86bd 100644
--- a/src/main/java/org/distorted/examples/movingeffects/MovingEffectsSurfaceView.java
+++ b/src/main/java/org/distorted/examples/movingeffects/MovingEffectsSurfaceView.java
@@ -19,9 +19,7 @@
 
 package org.distorted.examples.movingeffects;
 
-import android.app.ActivityManager;
 import android.content.Context;
-import android.content.pm.ConfigurationInfo;
 import android.graphics.Canvas;
 import android.graphics.Paint;
 import android.graphics.Paint.Style;
@@ -88,9 +86,6 @@ public class MovingEffectsSurfaceView extends GLSurfaceView
         {
         setFocusable(true);
         setFocusableInTouchMode(true);
-        final ActivityManager activityManager     = (android.app.ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
-        final ConfigurationInfo configurationInfo = activityManager.getDeviceConfigurationInfo();
-        setEGLContextClientVersion( (configurationInfo.reqGlEsVersion>>16) >= 3 ? 3:2 );
         setRenderer(mRenderer);
         }
       }
diff --git a/src/main/java/org/distorted/examples/multiblur/MultiblurRenderer.java b/src/main/java/org/distorted/examples/multiblur/MultiblurRenderer.java
index 806f319..03f4fef 100644
--- a/src/main/java/org/distorted/examples/multiblur/MultiblurRenderer.java
+++ b/src/main/java/org/distorted/examples/multiblur/MultiblurRenderer.java
@@ -162,7 +162,7 @@ class MultiblurRenderer implements GLSurfaceView.Renderer
       mQuatInt1.add(mQuat1);
       mQuatInt2.add(mQuat2);
 
-      mScreen = new DistortedScreen();
+      mScreen = new DistortedScreen(mView);
 
       for(int i=0; i<NUM_OBJECTS; i++)
         {
diff --git a/src/main/java/org/distorted/examples/multiblur/MultiblurSurfaceView.java b/src/main/java/org/distorted/examples/multiblur/MultiblurSurfaceView.java
index f8d50a4..3a550bc 100644
--- a/src/main/java/org/distorted/examples/multiblur/MultiblurSurfaceView.java
+++ b/src/main/java/org/distorted/examples/multiblur/MultiblurSurfaceView.java
@@ -19,9 +19,7 @@
 
 package org.distorted.examples.multiblur;
 
-import android.app.ActivityManager;
 import android.content.Context;
-import android.content.pm.ConfigurationInfo;
 import android.opengl.GLSurfaceView;
 import android.util.AttributeSet;
 import android.view.MotionEvent;
@@ -47,9 +45,6 @@ class MultiblurSurfaceView extends GLSurfaceView
       
       if(!isInEditMode())
         {
-        final ActivityManager activityManager     = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
-        final ConfigurationInfo configurationInfo = activityManager.getDeviceConfigurationInfo();
-        setEGLContextClientVersion( (configurationInfo.reqGlEsVersion>>16) >= 3 ? 3:2 );
         mRenderer = new MultiblurRenderer(this);
         setRenderer(mRenderer);
         Toast.makeText(context, R.string.example_rotate_toast , Toast.LENGTH_SHORT).show();
diff --git a/src/main/java/org/distorted/examples/olimpic/OlimpicRenderer.java b/src/main/java/org/distorted/examples/olimpic/OlimpicRenderer.java
index 53fe349..5240497 100644
--- a/src/main/java/org/distorted/examples/olimpic/OlimpicRenderer.java
+++ b/src/main/java/org/distorted/examples/olimpic/OlimpicRenderer.java
@@ -131,7 +131,7 @@ class OlimpicRenderer implements GLSurfaceView.Renderer
         for(int j=0; j<NUM_LEAVES; j++) mCircleNode[i].attach(mLeaf, mEffects[j], mMesh);
         }
 
-      mScreen = new DistortedScreen();
+      mScreen = new DistortedScreen(mView);
       mScreen.attach(mRoot);
       }
 
diff --git a/src/main/java/org/distorted/examples/olimpic/OlimpicSurfaceView.java b/src/main/java/org/distorted/examples/olimpic/OlimpicSurfaceView.java
index b8dd65e..05a2d75 100644
--- a/src/main/java/org/distorted/examples/olimpic/OlimpicSurfaceView.java
+++ b/src/main/java/org/distorted/examples/olimpic/OlimpicSurfaceView.java
@@ -19,9 +19,7 @@
 
 package org.distorted.examples.olimpic;
 
-import android.app.ActivityManager;
 import android.content.Context;
-import android.content.pm.ConfigurationInfo;
 import android.opengl.GLSurfaceView;
 import android.util.AttributeSet;
 
@@ -39,10 +37,6 @@ class OlimpicSurfaceView extends GLSurfaceView
 
       if(!isInEditMode())
         {
-        final ActivityManager activityManager     = (android.app.ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
-        final ConfigurationInfo configurationInfo = activityManager.getDeviceConfigurationInfo();
-        setEGLContextClientVersion( (configurationInfo.reqGlEsVersion>>16) >= 3 ? 3:2 );
-
         mRenderer = new OlimpicRenderer(this);
         setRenderer(mRenderer);
         }
diff --git a/src/main/java/org/distorted/examples/plainmonalisa/RenderThread.java b/src/main/java/org/distorted/examples/plainmonalisa/RenderThread.java
index 220bf88..0fdac8f 100644
--- a/src/main/java/org/distorted/examples/plainmonalisa/RenderThread.java
+++ b/src/main/java/org/distorted/examples/plainmonalisa/RenderThread.java
@@ -97,7 +97,7 @@ class RenderThread extends Thread
     mEffects.distort( dLeft, pLeft , rLeft );
     mEffects.distort(dRight, pRight, rRight);
 
-    mScreen = new DistortedScreen();
+    mScreen = new DistortedScreen(null);
     }
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
diff --git a/src/main/java/org/distorted/examples/projection/ProjectionRenderer.java b/src/main/java/org/distorted/examples/projection/ProjectionRenderer.java
index b71f895..5032c0a 100644
--- a/src/main/java/org/distorted/examples/projection/ProjectionRenderer.java
+++ b/src/main/java/org/distorted/examples/projection/ProjectionRenderer.java
@@ -54,7 +54,7 @@ class ProjectionRenderer implements GLSurfaceView.Renderer
       { 
       mView   = view;
       mEffects= new DistortedEffects();
-      mScreen = new DistortedScreen();
+      mScreen = new DistortedScreen(mView);
       }
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
diff --git a/src/main/java/org/distorted/examples/projection/ProjectionSurfaceView.java b/src/main/java/org/distorted/examples/projection/ProjectionSurfaceView.java
index dcfc504..7187254 100644
--- a/src/main/java/org/distorted/examples/projection/ProjectionSurfaceView.java
+++ b/src/main/java/org/distorted/examples/projection/ProjectionSurfaceView.java
@@ -19,9 +19,7 @@
 
 package org.distorted.examples.projection;
 
-import android.app.ActivityManager;
 import android.content.Context;
-import android.content.pm.ConfigurationInfo;
 import android.opengl.GLSurfaceView;
 import android.util.AttributeSet;
 
@@ -39,9 +37,6 @@ class ProjectionSurfaceView extends GLSurfaceView
     
       if(!isInEditMode())
         {
-        final ActivityManager activityManager     = (android.app.ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
-        final ConfigurationInfo configurationInfo = activityManager.getDeviceConfigurationInfo();
-        setEGLContextClientVersion( (configurationInfo.reqGlEsVersion>>16) >= 3 ? 3:2 );
         mRenderer = new ProjectionRenderer(this);
         setRenderer(mRenderer);
         }
diff --git a/src/main/java/org/distorted/examples/quaternion/QuaternionRenderer.java b/src/main/java/org/distorted/examples/quaternion/QuaternionRenderer.java
index 46dbd42..bf2951d 100644
--- a/src/main/java/org/distorted/examples/quaternion/QuaternionRenderer.java
+++ b/src/main/java/org/distorted/examples/quaternion/QuaternionRenderer.java
@@ -86,7 +86,7 @@ class QuaternionRenderer implements GLSurfaceView.Renderer
     mRot.setDuration(8000);
     mRot.setMode(Dynamic.MODE_LOOP);
 
-    mScreen = new DistortedScreen();
+    mScreen = new DistortedScreen(mView);
     mScreen.attach(mTexture,mEffects,mMesh);
     }
 
diff --git a/src/main/java/org/distorted/examples/quaternion/QuaternionSurfaceView.java b/src/main/java/org/distorted/examples/quaternion/QuaternionSurfaceView.java
index d1483e7..6eae446 100644
--- a/src/main/java/org/distorted/examples/quaternion/QuaternionSurfaceView.java
+++ b/src/main/java/org/distorted/examples/quaternion/QuaternionSurfaceView.java
@@ -19,9 +19,7 @@
 
 package org.distorted.examples.quaternion;
 
-import android.app.ActivityManager;
 import android.content.Context;
-import android.content.pm.ConfigurationInfo;
 import android.opengl.GLSurfaceView;
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
@@ -31,9 +29,6 @@ class QuaternionSurfaceView extends GLSurfaceView
   public QuaternionSurfaceView(Context context)
     {
     super(context);
-    final ActivityManager activityManager     = (android.app.ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
-    final ConfigurationInfo configurationInfo = activityManager.getDeviceConfigurationInfo();
-    setEGLContextClientVersion( (configurationInfo.reqGlEsVersion>>16) >= 3 ? 3:2 );
     setRenderer(new QuaternionRenderer(this));
     }
   }
diff --git a/src/main/java/org/distorted/examples/save/SaveRenderer.java b/src/main/java/org/distorted/examples/save/SaveRenderer.java
index b5dd979..6ae8e6a 100644
--- a/src/main/java/org/distorted/examples/save/SaveRenderer.java
+++ b/src/main/java/org/distorted/examples/save/SaveRenderer.java
@@ -98,7 +98,7 @@ class SaveRenderer implements GLSurfaceView.Renderer
     mEffects.sink( diSink, pLeft , sinkRegion);
     mEffects.sink( diSink, pRight, sinkRegion);
 
-    mScreen = new DistortedScreen();
+    mScreen = new DistortedScreen(mView);
     }
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
diff --git a/src/main/java/org/distorted/examples/save/SaveSurfaceView.java b/src/main/java/org/distorted/examples/save/SaveSurfaceView.java
index 66f9c0b..e5f482b 100644
--- a/src/main/java/org/distorted/examples/save/SaveSurfaceView.java
+++ b/src/main/java/org/distorted/examples/save/SaveSurfaceView.java
@@ -19,9 +19,7 @@
 
 package org.distorted.examples.save;
 
-import android.app.ActivityManager;
 import android.content.Context;
-import android.content.pm.ConfigurationInfo;
 import android.opengl.GLSurfaceView;
 import android.util.AttributeSet;
 
@@ -39,9 +37,6 @@ class SaveSurfaceView extends GLSurfaceView
 
     if(!isInEditMode())
       {
-      final ActivityManager activityManager     = (android.app.ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
-      final ConfigurationInfo configurationInfo = activityManager.getDeviceConfigurationInfo();
-      setEGLContextClientVersion( (configurationInfo.reqGlEsVersion>>16) >= 3 ? 3:2 );
       mRenderer = new SaveRenderer(this);
       setRenderer(mRenderer);
       }
diff --git a/src/main/java/org/distorted/examples/sink/SinkRenderer.java b/src/main/java/org/distorted/examples/sink/SinkRenderer.java
index c8c4d9e..88c674a 100644
--- a/src/main/java/org/distorted/examples/sink/SinkRenderer.java
+++ b/src/main/java/org/distorted/examples/sink/SinkRenderer.java
@@ -66,7 +66,7 @@ class SinkRenderer implements GLSurfaceView.Renderer
     mEffects = new DistortedEffects();
     mEffects.sink( sink, new Static3D(297, 320, 0), null);
 
-    mScreen = new DistortedScreen();
+    mScreen = new DistortedScreen(mView);
     }
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
diff --git a/src/main/java/org/distorted/examples/sink/SinkSurfaceView.java b/src/main/java/org/distorted/examples/sink/SinkSurfaceView.java
index fbe0c34..bef9027 100644
--- a/src/main/java/org/distorted/examples/sink/SinkSurfaceView.java
+++ b/src/main/java/org/distorted/examples/sink/SinkSurfaceView.java
@@ -19,9 +19,7 @@
 
 package org.distorted.examples.sink;
 
-import android.app.ActivityManager;
 import android.content.Context;
-import android.content.pm.ConfigurationInfo;
 import android.opengl.GLSurfaceView;
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
@@ -31,9 +29,6 @@ class SinkSurfaceView extends GLSurfaceView
   public SinkSurfaceView(Context context) 
     {
     super(context);
-    final ActivityManager activityManager     = (android.app.ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
-    final ConfigurationInfo configurationInfo = activityManager.getDeviceConfigurationInfo();
-    setEGLContextClientVersion( (configurationInfo.reqGlEsVersion>>16) >= 3 ? 3:2 );
     setRenderer(new SinkRenderer(this));
     }
   }
diff --git a/src/main/java/org/distorted/examples/starwars/StarWarsRenderer.java b/src/main/java/org/distorted/examples/starwars/StarWarsRenderer.java
index ff45820..db627f1 100644
--- a/src/main/java/org/distorted/examples/starwars/StarWarsRenderer.java
+++ b/src/main/java/org/distorted/examples/starwars/StarWarsRenderer.java
@@ -137,7 +137,7 @@ class StarWarsRenderer implements GLSurfaceView.Renderer, EffectListener
         mStarEffects[i] = new DistortedEffects(mStarEffects[0], Distorted.CLONE_VERTEX);
       }
 
-    mScreen = new DistortedScreen();
+    mScreen = new DistortedScreen(mView);
     mScreen.setProjection(FOV_ANGLE, 0.02f);
     }
 
diff --git a/src/main/java/org/distorted/examples/starwars/StarWarsSurfaceView.java b/src/main/java/org/distorted/examples/starwars/StarWarsSurfaceView.java
index 0c4bc46..1558f12 100644
--- a/src/main/java/org/distorted/examples/starwars/StarWarsSurfaceView.java
+++ b/src/main/java/org/distorted/examples/starwars/StarWarsSurfaceView.java
@@ -19,9 +19,7 @@
 
 package org.distorted.examples.starwars;
 
-import android.app.ActivityManager;
 import android.content.Context;
-import android.content.pm.ConfigurationInfo;
 import android.opengl.GLSurfaceView;
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
@@ -33,9 +31,6 @@ class StarWarsSurfaceView extends GLSurfaceView
   public StarWarsSurfaceView(Context context) 
     {
     super(context);
-    final ActivityManager activityManager     = (android.app.ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
-    final ConfigurationInfo configurationInfo = activityManager.getDeviceConfigurationInfo();
-    setEGLContextClientVersion( (configurationInfo.reqGlEsVersion>>16) >= 3 ? 3:2 );
     mRenderer = new StarWarsRenderer(this);
     setRenderer(mRenderer);
     }
diff --git a/src/main/java/org/distorted/examples/stencil/StencilRenderer.java b/src/main/java/org/distorted/examples/stencil/StencilRenderer.java
index ff98b60..4086e9c 100644
--- a/src/main/java/org/distorted/examples/stencil/StencilRenderer.java
+++ b/src/main/java/org/distorted/examples/stencil/StencilRenderer.java
@@ -89,11 +89,13 @@ class StencilRenderer implements GLSurfaceView.Renderer
       cube2Node.glStencilMask(0x00);                                            // Don't write anything to stencil buffer
       cube2Node.glDepthMask(true);                                              // Write to depth buffer
 
-      mScreen = new DistortedScreen();
+      mScreen = new DistortedScreen(mView);
       mScreen.attach(cube1Node);
       mScreen.attach(floorNode);
       mScreen.attach(cube2Node);
       mScreen.glClearColor(1.0f,1.0f,1.0f,1.0f);
+
+      mView.setEGLConfigChooser(5,6,5,0,16,8);       // Screen: 16 bit depth, 8 bit STENCIL
       }
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
diff --git a/src/main/java/org/distorted/examples/stencil/StencilSurfaceView.java b/src/main/java/org/distorted/examples/stencil/StencilSurfaceView.java
index 8092a25..ab381b5 100644
--- a/src/main/java/org/distorted/examples/stencil/StencilSurfaceView.java
+++ b/src/main/java/org/distorted/examples/stencil/StencilSurfaceView.java
@@ -19,9 +19,7 @@
 
 package org.distorted.examples.stencil;
 
-import android.app.ActivityManager;
 import android.content.Context;
-import android.content.pm.ConfigurationInfo;
 import android.opengl.GLSurfaceView;
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
@@ -33,10 +31,6 @@ class StencilSurfaceView extends GLSurfaceView
     public StencilSurfaceView(Context context)
       {
       super(context);
-      final ActivityManager activityManager     = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
-      final ConfigurationInfo configurationInfo = activityManager.getDeviceConfigurationInfo();
-      setEGLContextClientVersion( (configurationInfo.reqGlEsVersion>>16) >= 3 ? 3:2 );
-      setEGLConfigChooser(5,6,5,0,16,8);       // 16 bit depth, 8 bit STENCIL
       setRenderer(new StencilRenderer(this));
       }
 }
diff --git a/src/main/java/org/distorted/examples/wind/WindRenderer.java b/src/main/java/org/distorted/examples/wind/WindRenderer.java
index e9881f4..ebbfac0 100644
--- a/src/main/java/org/distorted/examples/wind/WindRenderer.java
+++ b/src/main/java/org/distorted/examples/wind/WindRenderer.java
@@ -61,7 +61,7 @@ class WindRenderer implements GLSurfaceView.Renderer
       mEffects = new DistortedEffects();
       mTexture = new DistortedTexture(50,30);
       mManager = new WindEffectsManager(mTexture);
-      mScreen  = new DistortedScreen();
+      mScreen  = new DistortedScreen(mView);
 
       mScreen.attach(mTexture,mEffects,new MeshCubes(50,30,false));
 
diff --git a/src/main/java/org/distorted/examples/wind/WindSurfaceView.java b/src/main/java/org/distorted/examples/wind/WindSurfaceView.java
index 422c5d9..fb6cbaf 100644
--- a/src/main/java/org/distorted/examples/wind/WindSurfaceView.java
+++ b/src/main/java/org/distorted/examples/wind/WindSurfaceView.java
@@ -19,9 +19,7 @@
 
 package org.distorted.examples.wind;
 
-import android.app.ActivityManager;
 import android.content.Context;
-import android.content.pm.ConfigurationInfo;
 import android.opengl.GLSurfaceView;
 import android.util.AttributeSet;
 
@@ -39,9 +37,6 @@ class WindSurfaceView extends GLSurfaceView
 
       if(!isInEditMode())
         {
-        final ActivityManager activityManager     = (android.app.ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
-        final ConfigurationInfo configurationInfo = activityManager.getDeviceConfigurationInfo();
-        setEGLContextClientVersion( (configurationInfo.reqGlEsVersion>>16) >= 3 ? 3:2 );
         mRenderer = new WindRenderer(this);
         setRenderer(mRenderer);
         }
