【问题标题】:Get GPU info on Android without SurfaceView在没有 SurfaceView 的情况下获取 Android 上的 GPU 信息
【发布时间】:2012-01-16 13:58:00
【问题描述】:

在 Android 上,有没有办法在不创建 SurfaceView 的情况下获取 GPU 信息?我不想使用 OpenGL 绘制任何东西,但我只需要获取硬件信息,如供应商、OpenGL ES 版本、可用扩展等。

【问题讨论】:

    标签: android opengl-es gpu surfaceview


    【解决方案1】:

    很抱歉,我不确定如何在 Android 上执行此操作,但函数 glGetString 允许您访问 OpenGL 信息。这是一个示例 C++ 样式代码,它将输出您的硬件支持的扩展,我希望您能够适应 Android:

    void PrettyPrintExtensions(){
        std::string extensions = (const char*) glGetString(GL_EXTENSIONS);
        char* extensionStart = &extensions[0];
        char** extension = &extensionStart;
        std::cout << "Supported OpenGL ES Extensions:" << std::endl;
        while (*extension)
            std::cout << '\t' << strsep(extension, " ") << std::endl;
        std::cout << std::endl;
    }
    

    通过更改 glGetString 的参数,您还可以访问供应商、渲染器和版本。 请看:

    http://www.khronos.org/opengles/sdk/1.1/docs/man/glGetString.xml

    【讨论】:

    • 感谢您的建议。不幸的是,在 Android 上,函数 glGetString() 仅适用于 GL10 类型的对象(或 GL11、GL20,具体取决于您使用的版本)。您不能自己实例化此对象,但它会作为事件侦听器的参数传递给您(例如 onDrawFrame(GL10 gl))。 OpenGL Example
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-21
    • 1970-01-01
    • 1970-01-01
    • 2019-03-19
    • 1970-01-01
    相关资源
    最近更新 更多