Если вы можете жить по умолчанию с EGLContextFactory и EGLConfigChooser, вы можете использовать setEGLContextClientVersion () метод GLSurfaceView.
В противном случае, если вы пишете свой собственный EGLContextFactory и EGLConfigChooser , просто определите константы самостоятельно.В настройке конфигурации определите
private static final int EGL_OPENGL_ES2_BIT = 4;
, затем передайте его как значение для EGL_RENDERABLE_TYPE в eglChooseConfig вместе с другими желаемыми атрибутами:
int attribs[] = {
EGL10.EGL_RED_SIZE, mRedSize,
EGL10.EGL_GREEN_SIZE, mGreenSize,
EGL10.EGL_BLUE_SIZE, mBlueSize,
EGL10.EGL_ALPHA_SIZE, mAlphaSize,
EGL10.EGL_DEPTH_SIZE, mDepthSize,
EGL10.EGL_SAMPLE_BUFFERS, mSampleBuffers,
EGL10.EGL_RENDERABLE_TYPE, EGL_OPENGL_ES2_BIT,
EGL10.EGL_NONE
};
Для фабрики контекста определите
private static final int EGL_CONTEXT_CLIENT_VERSION = 0x3098;
и используйте его при создании контекста:
public EGLContext createContext(EGL10 egl, EGLDisplay display, EGLConfig eglConfig)
{
int[] attrib_list = {
EGL_CONTEXT_CLIENT_VERSION, 2,
EGL10.EGL_NONE
};
EGLContext context = egl.eglCreateContext(display, eglConfig, EGL10.EGL_NO_CONTEXT, attrib_list);
return context;
}
Когда вы написали их, передайте их setEGLContextFactory и setEGLConfigChooser ,соответственно.