У меня есть код, для которого мне нужно включить Anti Aliasing (полный проект src здесь ). Ожидаемый результат на данный момент - красный экран.
Вот мой GLSurfaceView
код просмотра (src здесь на Github):
class AAEnabledGLSurfaceView(context: Context, attrs: AttributeSet) : GLSurfaceView(context, attrs) {
private val renderer = MRenderer()
init {
setEGLContextClientVersion(2)
setEGLConfigChooser(MultiSampleConfigChooser())
setRenderer(renderer)
holder.setFormat(PixelFormat.TRANSLUCENT)
setZOrderOnTop(true)
renderMode = GLSurfaceView.RENDERMODE_WHEN_DIRTY
}
}
Я использую следующую EGLCOnfigChooser
реализацию (src здесь на Github):
private class MultiSampleConfigChooser : GLSurfaceView.EGLConfigChooser {
override fun chooseConfig(egl: EGL10, display: EGLDisplay): EGLConfig {
val value = intArrayOf(0)
val returnedConfigs = arrayOfNulls<EGLConfig>(16)
var minimalSpecs = intArrayOf(
EGL10.EGL_RED_SIZE,
8,
EGL10.EGL_GREEN_SIZE,
8,
EGL10.EGL_BLUE_SIZE,
8,
EGL10.EGL_ALPHA_SIZE,
8,
EGL10.EGL_SAMPLE_BUFFERS,
1,
EGL10.EGL_SAMPLES,
2,
EGL10.EGL_NONE
)
if (!egl.eglChooseConfig(display, minimalSpecs, returnedConfigs, returnedConfigs.size, value)) {
throw IllegalArgumentException("No config found")
}
val configCount = value[0]
Log.d(TAG, "$configCount configs found")
return returnedConfigs[0]!!
}
}
Код отлично работает на Nexus 5 , но на Asus P027 при запуске проекта я получаю следующее исключение:
2018-11-07 15:17:35.600 26630-26646/com.whatnow.wtf E/AndroidRuntime: FATAL EXCEPTION: GLThread 5223
Process: com.whatnow.wtf, PID: 26630
java.lang.RuntimeException: createContext failed: EGL_BAD_CONFIG
at android.opengl.GLSurfaceView$EglHelper.throwEglException(GLSurfaceView.java:1205)
at android.opengl.GLSurfaceView$EglHelper.throwEglException(GLSurfaceView.java:1196)
at android.opengl.GLSurfaceView$EglHelper.start(GLSurfaceView.java:1046)
at android.opengl.GLSurfaceView$GLThread.guardedRun(GLSurfaceView.java:1416)
at android.opengl.GLSurfaceView$GLThread.run(GLSurfaceView.java:1253)
... что довольно бесполезно, так как не говорит мне, какая часть моего конфига была плохой. Кто-нибудь знает, что не так с кодом или, что еще лучше, как мне отладить эти вещи? Больше ничего не вижу в логах.