【发布时间】:2012-01-16 13:58:00
【问题描述】:
在 Android 上,有没有办法在不创建 SurfaceView 的情况下获取 GPU 信息?我不想使用 OpenGL 绘制任何东西,但我只需要获取硬件信息,如供应商、OpenGL ES 版本、可用扩展等。
【问题讨论】:
标签: android opengl-es gpu surfaceview
在 Android 上,有没有办法在不创建 SurfaceView 的情况下获取 GPU 信息?我不想使用 OpenGL 绘制任何东西,但我只需要获取硬件信息,如供应商、OpenGL ES 版本、可用扩展等。
【问题讨论】:
标签: android opengl-es gpu surfaceview
很抱歉,我不确定如何在 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
【讨论】: