Project

General

Profile

« Previous | Next » 

Revision 5eb95531

Added by Leszek Koltunski about 8 years ago

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

View differences:

src/main/java/org/distorted/examples/plainmonalisa/EglCore.java
26 26
import android.opengl.EGLDisplay;
27 27
import android.opengl.EGLExt;
28 28
import android.opengl.EGLSurface;
29
import android.os.Build;
29 30
import android.util.Log;
30 31
import android.view.Surface;
31 32

  
......
142 143
    // The actual surface is generally RGBA or RGBX, so situationally omitting alpha
143 144
    // doesn't really help.  It can also lead to a huge performance hit on glReadPixels()
144 145
    // when reading into a GL_RGBA buffer.
145
    int[] attribList =
146

  
147
    int [] normalAttribList =
146 148
                {
147 149
                EGL14.EGL_RED_SIZE, 8,
148 150
                EGL14.EGL_GREEN_SIZE, 8,
149 151
                EGL14.EGL_BLUE_SIZE, 8,
150 152
                EGL14.EGL_ALPHA_SIZE, 8,
151
                //EGL14.EGL_DEPTH_SIZE, 16,
152
                //EGL14.EGL_STENCIL_SIZE, 8,
153 153
                EGL14.EGL_RENDERABLE_TYPE, renderableType,
154 154
                EGL14.EGL_NONE, 0,      // placeholder for recordable [@-3]
155 155
                EGL14.EGL_NONE
......
157 157

  
158 158
    if ((flags & FLAG_RECORDABLE) != 0)
159 159
      {
160
      attribList[attribList.length - 3] = EGL_RECORDABLE_ANDROID;
161
      attribList[attribList.length - 2] = 1;
160
      normalAttribList[normalAttribList.length - 3] = EGL_RECORDABLE_ANDROID;
161
      normalAttribList[normalAttribList.length - 2] = 1;
162
      }
163

  
164
    int [] emulatorAttribList =
165
                {
166
                EGL14.EGL_RED_SIZE, 8,
167
                EGL14.EGL_GREEN_SIZE, 8,
168
                EGL14.EGL_BLUE_SIZE, 8,
169
                EGL14.EGL_ALPHA_SIZE, 8,
170
                EGL14.EGL_DEPTH_SIZE, 16,
171
                EGL14.EGL_STENCIL_SIZE, 0,
172
                EGL14.EGL_NONE
173
                };
174

  
175
    boolean isEmulator=
176
               Build.FINGERPRINT.startsWith("generic")
177
            || Build.FINGERPRINT.startsWith("unknown")
178
            || Build.MODEL.contains("google_sdk")
179
            || Build.MODEL.contains("Emulator")
180
            || Build.MODEL.contains("Android SDK built for x86")
181
            || Build.MANUFACTURER.contains("Genymotion")
182
            || (Build.BRAND.startsWith("generic") && Build.DEVICE.startsWith("generic"))
183
            || "google_sdk".equals(Build.PRODUCT);
184

  
185
    int [] attribList = (isEmulator ? emulatorAttribList:normalAttribList);
186

  
187
    if( isEmulator )
188
      {
189
      Log.w(TAG, "Using emulator config!" );
162 190
      }
163 191

  
164 192
    EGLConfig[] configs = new EGLConfig[1];

Also available in: Unified diff