在Android上获取GPU信息而不使用SurfaceView

5
在Android上,有没有一种方法可以在不创建SurfaceView的情况下获取GPU信息? 我不想使用OpenGL绘制任何内容,但我只需要获取硬件信息,如供应商、OpenGL ES版本、可用扩展等。
1个回答

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


2
谢谢您的建议。不幸的是,在Android上,glGetString()函数仅从GL10类型的对象(或者根据您使用的版本,GL11、GL20类型的对象)中可用。您无法自己实例化此对象,但它会作为事件监听器参数(例如onDrawFrame(GL10 gl))传递给您。OpenGL示例 - alexFlorea

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接