繁体   English   中英

OpenGL ES版本在编译时

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

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM