Revision 5eb95531
Added by Leszek Koltunski about 9 years ago
| 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
Fix the 'PlainMonaLisa' to be able to run in the Emulator as well (before ELG Context creation would fail)