私は現在、GLSurfaceView.Renderer を備えた GLSurfaceView を持つ顧客向けの Android アプリを作成しています。
私の OpenGL 全体は問題なく動作します (基本的には、別の開発者が最初に iOS で作成したものを移植したものです)。一つのことを除いて。ビューが読み込まれ、OpenGL が読み込まれると、背景がすばやく黒く点滅し、OpenGL が (背景とともに) 正しくレンダリングを開始します。だから私がすることは次のとおりです。
onSurfaceCreated では、次から始めます。
@Override
public void onSurfaceCreated(GL10 gl, EGLConfig config) {
GLES20.glClearColor(0.9f + 0.1f * (21.0f / 255),
0.9f + 0.1f * (36.0f / 255),
0.9f + 0.1f * (31.0f / 255), 1.0f);
// Here goes my other stuff, if I comment all my other stuff out I still get the flash at startup
}
私の onDrawFrame メソッドでは、次のようにします。
@Override
public void onDrawFrame(GL10 gl) {
GLES20.glClear(GLES20.GL_DEPTH_BUFFER_BIT | GLES20.GL_COLOR_BUFFER_BIT);
// My stuff, again, if I comment all this stuff out I still get the flash...
}
そのため、onSurfaceCreated の glClearColor(..) を除くすべてのコード行を削除しても、実際の背景色が設定される前に黒いフラッシュが表示されます。コードから glClearColor(..) のみを削除すると (したがって、他のすべての OpenGL のものをそのままにしておくと)、すべてが黒い背景にレンダリングされます。
私が見たいのは、黒いフラッシュを取り除くだけで、起動時に背景色が正しく初期化されることです...
どうすればそれを達成できるのでしょうか?
ダーク