[英]OpenGL ES version in compile time
我需要在Android NDK(C ++)上的编译时知道OpenGL ES版本。 我知道在台式机上
#ifdef OPENGL_ES==1
要么
#ifdef OPENGL_ES==2
但是在android上,我不知道哪个常量。
OpenGL ES 2.0是在API 8( https://developer.android.com/guide/topics/graphics/opengl.html )中引入的。 API 18中引入了3.0。但是,要编译的GL版本取决于所包含的GL标头。 要确定是否存在所需的标头,必须检查api-level.h中的__ANDROID_API__
宏。
#include <android/api-level.h>
#if __ANDROID_API__ >= 18
# include <GLES3/gl3.h>
#elif __ANDROID_API__ >= 8
# include <GLES2/gl2.h>
#else
# include <GLES/gl.h>
#endif
如果您稍后在代码中想要知道已包含(然后可用)的GLES标头的版本,则可以检查以下宏是否已定义且为true: GL_ES_VERSION_3_0
, GL_ES_VERSION_2_0
。 例如:
#if defined(GL_ES_VERSION_3_0) && GL_ES_VERSION_3_0
// gles3 version
#elif defined(GL_ES_VERSION_2_0) && GL_ES_VERSION_2_0
// gles2 version
#else
// gles version
#endif
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.