簡體   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