These are just different versions of EGL, which is the OpenGL window system interface used on Android.
EGL10 complies with EGL 1.0, which is a specification released in 2003.EGL14 complies with EGL 1.4 , which is a specification released in 2014.
This means that EGL14 more significant . The latest specification is EGL 1.5, released in 2015.
The unfortunate aspect is that the Java Java bindings for the two versions are completely different. Although functionally EGL 1.4 is a superset of EGL 1.0 (at least AFAIK, I did not compare the specifications systematically), EGL14 in Android is not an extended version of the EGL10 API. Thus, you cannot simply mix and match functionality between them. You pretty much have to choose one and stick to it.
Needless to say, based on the 11-year time difference, EGL 1.4 is significantly superior to EGL 1.0.
Now you may wonder why GLSurfaceView uses EGL10 links in its interface. I do not know for sure, but I strongly suspect that it is for backward compatibility. EGL14 was added only in API level 17, and GLSurfaceView was there from API level 3. In order not to break old applications, they almost had to present a clear version of GLSurfaceView , which is associated with EGL14 .
If you want to use GLSurfaceView and EGL14 together, you need to jump over several hoops. For example, if you have an EGLConfig object from the EGL10 interface and you need the corresponding EGLConfig object to use with the EGL14 interface, the only way I found is to extract the configuration identifier from the original configuration using the EGL10 version eglGetConfigAttrib() , and then request the EGL14 configuration. using the EGL14 version eglChooseConfig() .
What adds to the fun when you start mixing the two versions is that they basically use the same method names. This means that you need to use qualified names in the source files where you are dealing with both versions.
source share