我注意到,如果我尝试在创建表面之前调用 API 调用,例如
GLES20.glGenTextures(textures.size(), textureHandle,0); GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, textureHandle[i]);
它们的行为不正常,例如纹理处理程序一直返回为 0。
所以我把我的启动方法放在 onSurfaceCreated 调用下。
public void onSurfaceCreated(GL10 arg0, EGLConfig arg1) {
if(initiated)return;
BitmapLoader.onOpenglGLInitiated();
program.init();
initiated = true;
}
然而,每当重新创建表面时,这样的结果就会被召回;当用户暂停和恢复时。其中导致双重启动,因此出现错误。我想知道哪里应该是放置我的启动代码的更好地方。