gpt4 book ai didi

android - 编译时的 OpenGL ES 版本

转载 作者:搜寻专家 更新时间:2023-11-01 08:46:48 25 4
gpt4 key购买 nike

我需要知道 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) 中引入的。 3.0 是在 API 18 中引入的。但是,您正在编译的 GL 版本取决于您包含的 GL header 。要确定所需 header 是否存在,您必须检查 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 header (因此可用),您可以检查这些宏是否已定义且为真: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

关于android - 编译时的 OpenGL ES 版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27469938/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com