运行界面

代码架构

CMakeLists.txt
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall")//编译后显示所有的警告
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -fno-rtti -fno-exceptions -Wall")//支持c++11, -fno-rtti关闭运行时类型判断 -fno-exceptions:关闭异常机制,减少资源的占用
if (${ANDROID_PLATFORM_LEVEL} LESS 12)//在12以下,不支持opengl
message(FATAL_ERROR "OpenGL 2 is not supported before API level 11 \
(currently using ${ANDROID_PLATFORM_LEVEL}).")
return()
elseif (${ANDROID_PLATFORM_LEVEL} LESS 18) //在ES2.0的平台上,无法连接ES3.0的函数。所以,这里就需要动态加载ES3.0的函数,在ES2.0的平台上
add_definitions("-DDYNAMIC_ES3")
set(GL3STUB_SRC gl3stub.c)
set(OPENGL_LIB GLESv2)
else ()
set(OPENGL_LIB GLESv3)
endif (${ANDROID_PLATFORM_LEVEL} LESS 12)
add_library(gles3jni SHARED
${GL3STUB_SRC}
gles3jni.cpp
RendererES2.cpp
RendererES3.cpp)
# Include libraries needed for gles3jni lib
target_link_libraries(gles3jni
${OPENGL_LIB}
android
EGL
log
m)