最近的Android NDK r9发布了对OpenGL ES 3.0的支持。有一个示例samples/gles3jni
,演示了如何使用来自JNI /本机代码的OpenGL ES 3.0。样品可以建立两种不同的方式:Android中的OpenGL ES 3.0 r9
- 兼容API级别11以后
- 需要API级别18或更高版本。
对于不支持OpenGL ES 3.0的设备,两种版本都包含OpenGL ES 2.0回退路径。但是,在第一个示例中,使用LOCAL_LDLIBS
选件-lGLESv2
静态链接到OpenGL ES 2。在第二种情况下,它以相同的方式与GLES 3静态链接。
初始化是这样的:
const char* versionStr = (const char*)glGetString(GL_VERSION);
if (strstr(versionStr, "OpenGL ES 3.") && gl3stubInit()) {
g_renderer = createES3Renderer();
} else if (strstr(versionStr, "OpenGL ES 2.")) {
g_renderer = createES2Renderer();
}
我怎么能忽略静态链接都和负载GLES 2或3动态地从.so
?
请注意标签,请:http://meta.stackexchange.com/questions/190739/opengl-es-3-or-opengl-es-3-0-tag?noredirect=1#comment591924_190739 –