解決策を見つけるためにインターネット全体を何日も検索しましたが、何も得られませんでした。
Android デバイス (RENDERER、VENDOR、VERSION など) の GPU に関する主な情報を取得し、定義された XML レイアウトのテキストビューに出力できるようにしたいと考えています。私は多くの方法を試しましたが、何もうまくいきませんでした。誰もがこれを使用すると言います:
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);
}
}
}
これはうまく機能しますが、それらのログをテキストビューに入れる方法がわかりません。GLSurfaceView に ContentView を設定するそこで TextView を使用する方法がわかりません。
私も使ってみました:
String renderer = gl.glGetString(GL10.GL_VENDOR);
Log.d("GL", renderer);
以前のログと同じ場所で、これもうまく機能し、LogCat でベンダーの正しい価値を確認できます。
それでも、この値をテキストビュー (tv.setText(renderer) など) に渡し、通常のレイアウトで使用する方法がわかりません。
誰かが簡単な例でこの問題を解決するのを手伝ってくれたら、とても感謝しています。私は OpenGL を使用したことがなく、OpenGL に関する情報のみを取得したいということを考慮してください。また、その情報を取得する別の方法 (できればもっと簡単に:D) を教えていただければ、それも承ります。
前もって感謝します。