如果您可以使用默認的EGLContextFactory和EGLConfigChooser,您可以使用GLSurfaceView的setEGLContextClientVersion()方法。否則,如果您正在編寫自己的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。