[英]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.