如何在本机活动中创建OpenGL ES 2上下文?

The*_*Saw 10 c++ opengl-es android-ndk egl

对于我的生活,我找不到任何适用于OpenGL ES 2的纯Android NDK示例.包含native-activity示例项目的示例项目构建了ES 1上下文.是否有任何示例程序演示如何在纯C++中创建ES 2上下文?

Ben*_*itz 8

创建OpenGL ES 2上下文应该与创建OpenGL ES大致相同1.基于NDK中的"native-activity"示例,您只需将其添加到传递给的eglChooseConfig以下属性列表:

const EGLint attribs[] =
{
    EGL_RENDERABLE_TYPE, EGL_OPENGL_ES2_BIT,
    ...
    EGL_NONE
};
Run Code Online (Sandbox Code Playgroud)

这应该确保您的配置与ES2兼容.

然后将此属性列表传递给eglCreateContext:

EGLint AttribList[] = 
{
    EGL_CONTEXT_CLIENT_VERSION, 2,
    EGL_NONE
};
Run Code Online (Sandbox Code Playgroud)

像这样的电话:

context = eglCreateContext(display, config, NULL, AttribList);
Run Code Online (Sandbox Code Playgroud)