commit 5eb95531ceb5458d9e931ae2772b79913fc21350
Author: Leszek Koltunski <leszek@distorted.org>
Date:   Thu Sep 15 22:36:32 2016 +0100

    Fix the 'PlainMonaLisa' to be able to run in the Emulator as well (before ELG Context creation would fail)

diff --git a/src/main/java/org/distorted/examples/plainmonalisa/EglCore.java b/src/main/java/org/distorted/examples/plainmonalisa/EglCore.java
index 22c59bb..69054a4 100644
--- a/src/main/java/org/distorted/examples/plainmonalisa/EglCore.java
+++ b/src/main/java/org/distorted/examples/plainmonalisa/EglCore.java
@@ -26,6 +26,7 @@ import android.opengl.EGLContext;
 import android.opengl.EGLDisplay;
 import android.opengl.EGLExt;
 import android.opengl.EGLSurface;
+import android.os.Build;
 import android.util.Log;
 import android.view.Surface;
 
@@ -142,14 +143,13 @@ public final class EglCore
     // The actual surface is generally RGBA or RGBX, so situationally omitting alpha
     // doesn't really help.  It can also lead to a huge performance hit on glReadPixels()
     // when reading into a GL_RGBA buffer.
-    int[] attribList =
+
+    int [] normalAttribList =
                 {
                 EGL14.EGL_RED_SIZE, 8,
                 EGL14.EGL_GREEN_SIZE, 8,
                 EGL14.EGL_BLUE_SIZE, 8,
                 EGL14.EGL_ALPHA_SIZE, 8,
-                //EGL14.EGL_DEPTH_SIZE, 16,
-                //EGL14.EGL_STENCIL_SIZE, 8,
                 EGL14.EGL_RENDERABLE_TYPE, renderableType,
                 EGL14.EGL_NONE, 0,      // placeholder for recordable [@-3]
                 EGL14.EGL_NONE
@@ -157,8 +157,36 @@ public final class EglCore
 
     if ((flags & FLAG_RECORDABLE) != 0)
       {
-      attribList[attribList.length - 3] = EGL_RECORDABLE_ANDROID;
-      attribList[attribList.length - 2] = 1;
+      normalAttribList[normalAttribList.length - 3] = EGL_RECORDABLE_ANDROID;
+      normalAttribList[normalAttribList.length - 2] = 1;
+      }
+
+    int [] emulatorAttribList =
+                {
+                EGL14.EGL_RED_SIZE, 8,
+                EGL14.EGL_GREEN_SIZE, 8,
+                EGL14.EGL_BLUE_SIZE, 8,
+                EGL14.EGL_ALPHA_SIZE, 8,
+                EGL14.EGL_DEPTH_SIZE, 16,
+                EGL14.EGL_STENCIL_SIZE, 0,
+                EGL14.EGL_NONE
+                };
+
+    boolean isEmulator=
+               Build.FINGERPRINT.startsWith("generic")
+            || Build.FINGERPRINT.startsWith("unknown")
+            || Build.MODEL.contains("google_sdk")
+            || Build.MODEL.contains("Emulator")
+            || Build.MODEL.contains("Android SDK built for x86")
+            || Build.MANUFACTURER.contains("Genymotion")
+            || (Build.BRAND.startsWith("generic") && Build.DEVICE.startsWith("generic"))
+            || "google_sdk".equals(Build.PRODUCT);
+
+    int [] attribList = (isEmulator ? emulatorAttribList:normalAttribList);
+
+    if( isEmulator )
+      {
+      Log.w(TAG, "Using emulator config!" );
       }
 
     EGLConfig[] configs = new EGLConfig[1];
