2016-03-29 14 views
0

このコードを使用して、携帯電話でOpenGL ESのバージョンを取得しています。私は、このリンクから、このコードを発見したgetGlEsVersion()は、Androidバージョン6.0.1のネクサス5で3.0を返します。

int result; 
    ActivityManager activityManager = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE); 
    ConfigurationInfo configInfo = activityManager 
      .getDeviceConfigurationInfo(); 
    if (configInfo.reqGlEsVersion != ConfigurationInfo.GL_ES_VERSION_UNDEFINED) { 
     result = configInfo.reqGlEsVersion; 
    } else { 
     result = 1 << 16; // Lack of property means OpenGL ES version 1 
    } 

    Log.e("reqGlEsVersion", String.valueOf(result)); 
    Log.e("getGlEsVersion", configInfo.getGlEsVersion()); 

:私のネクサス5でIs there a way to check if Android device supports openGL ES 2.0?

を、私は3.0としてGLESのバージョンを取得しています。しかし、このドキュメントによれば、http://developer.android.com/guide/topics/graphics/opengl.htmlによれば、「OpenGL ES 3.1 - このAPI仕様はAndroid 5.0(APIレベル21)以上でサポートされています」という理由で3.1を取得する必要があります。

私はOpenGL ES版として3.1を取得するべきだと思います。誰が私にOpenGL ESバージョン3.0を手に入れているのか教えていただけますか?

答えて

1

API 21 GLES 3.1をサポートしていますが、その利用可能性を保証するものではありません。これは実行時に使用されているGLESのバージョンをチェックする理由です(あなたがリンクしているアンドロイドのドキュメントで説明されているように)。そうしないとマニフェストで必要とするだけです。

Nexus 5をお持ちの場合は、Adreno 330ですが、これはGLES 3.0のみをサポートしています。したがって、アプリケーションをNexus 5で実行するには、GLES 3.0が必要です。それ以外の場合は、GLES 3.1をサポートするデバイスを取得し、マニフェストに必要とします。