Недавний Android NDK r9 представляет поддержку OpenGL ES 3.0. Существует пример samples/gles3jni
, который демонстрирует, как использовать OpenGL ES 3.0 из JNI/собственного кода. Образец может быть построен двумя различными способами:OpenGL ES 3.0 в Android NDK r9
- Совместимость с уровнем API 11, а затем
- Требовать уровень API 18 или более поздней версии.
Обе версии включают резервный путь OpenGL ES 2.0 для устройств, которые не поддерживают OpenGL ES 3.0. Однако в первом примере пример статически связан с OpenGL ES 2 с использованием LOCAL_LDLIBS
опциона -lGLESv2
. Во втором случае он статически связан с 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 –