私のアプリでは、GPUの存在に応じて画像のレンダリングが異なります(GPUがある場合はOpenGLを使用します)。
現在、そのための構成オプションがあります。
しかし、私は自分のアプリが何らかの方法、いくつかの簡単なテストによってGPUの存在を自動的に検出することを望んでいます。それを可能にする直接APIはないと思います。しかし、それでは何をテストする必要がありますか?
ブール値ほど簡単ではありませんが、次のようなことを試すことができます
glGetString(GL_VENDOR);
glGetString(GL_RENDERER);
そして、GPUベンダーの既知のリストに基づいてそれを決定してみてください。これはOpenGLのmanページがそれについて言わなければならないことです:
GLには実装のパフォーマンス特性のクエリが含まれていないため、一部のアプリケーションは、既知のプラットフォームを認識し、これらのプラットフォームの既知のパフォーマンス特性に基づいてGLの使用法を変更するように作成されています。文字列GL_VENDORとGL_RENDERERは、一緒にプラットフォームを一意に指定します。これらはリリースごとに変わることはなく、プラットフォーム認識アルゴリズムで使用する必要があります。
ほんの一例として、私のデバイスは次を返します。
Vendor: NVIDIA Corporation
Renderer: NVIDIA Tegra