我已经在整个互联网上搜索了好几天,但是没有找到解决方案。
我想要获取 Android 设备上 GPU 的主要信息(例如 RENDERER、VENDOR 和 VERSION),并能够将其打印在一个预定义的 XML 布局的 textview 上。我尝试了很多方法,但都无法实现。每个人都说要使用以下内容:
Log.d("GL", "GL_RENDERER = " + gl.glGetString(GL10.GL_RENDERER));
Log.d("GL", "GL_VENDOR = " + gl.glGetString(GL10.GL_VENDOR));
Log.d("GL", "GL_VERSION = " + gl.glGetString(GL10.GL_VERSION));
Log.i("GL", "GL_EXTENSIONS = " + gl.glGetString(GL10.GL_EXTENSIONS));
我实现了下一个类:
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mGLView = new GLSurfaceView(this);
mGLView.setRenderer(new ClearRenderer());
setContentView(mGLView);
}
private GLSurfaceView mGLView;
static class ClearRenderer implements GLSurfaceView.Renderer {
public final static String renderer = null;
Random aleatorio = new Random();
public void onSurfaceCreated(GL10 gl, EGLConfig config) {
float r = aleatorio.nextFloat();
float g = aleatorio.nextFloat();
float b = aleatorio.nextFloat();
gl.glClearColor(r, g, b, 1.0f);
Log.d("GL", "GL_RENDERER = " + gl.glGetString(GL10.GL_RENDERER));
Log.d("GL", "GL_VENDOR = " + gl.glGetString(GL10.GL_VENDOR));
Log.d("GL", "GL_VERSION = " + gl.glGetString(GL10.GL_VERSION));
Log.i("GL", "GL_EXTENSIONS = " + gl.glGetString(GL10.GL_EXTENSIONS));
}
public void onSurfaceChanged(GL10 gl, int w, int h) {
}
public void onDrawFrame(GL10 gl) {
gl.glClear(gl.GL_COLOR_BUFFER_BIT);
}
}
}
这个功能很好,但我不知道如何将这些日志放入TextView中。我将ContentView设置为我的GLSurfaceView,但我不知道如何在其中使用TextView。
我也尝试使用:
String renderer = gl.glGetString(GL10.GL_VENDOR);
Log.d("GL", renderer);
在与之前的日志相同的位置,这也很好地工作,并且我可以在LogCat中看到供应商的正确值。
但是,我仍然不知道如何将此值传递给文本视图(例如tv.setText(renderer)),并在普通布局上使用它。
如果有人能够用一个简单的示例帮助我解决这个问题,我将非常感激。请考虑到我从未使用过OpenGL,我只想获取关于它的信息。如果可能的话,也请告诉我另一种获取该信息的方法(如果更容易的话:D)。
提前致谢。