我正在开发一个OpenGL ES项目,新手体育场,所以我有一个关于GLSurfaceView和Renderer实现的问题。 我有一个包含FrameLayout中的GLSurfaceView的布局,我用它来显示渲染的动画(动画在我自己的渲染器实现中渲染)。
所有这些都发生在一个活动中。
然后我需要开始另一个活动,但是为了使用相同的View和相同的Renderer,我尝试在新活动中创建新的GLSurfaceView(也在FrameLayoyt中,与第一个Activity相同),但它立即崩溃。所以我认为我必须重用我在第一个活动中使用的GLSurfaceView和Renderer。
获得此权利的正确方法是什么?
答案 0 :(得分:1)
阅读此Android文档页面: GLSurfaceView
确实说:
活动生命周期
当活动暂停并恢复时,必须通知GLSurfaceView。 GLSurfaceView客户端需要在活动暂停时调用onPause(),并在活动恢复时调用onResume()。这些调用允许GLSurfaceView暂停和恢复渲染线程,并允许GLSurfaceView释放并重新创建OpenGL显示。
所以我建议你做以下事情:
private GLSurfaceView mGlSurface;
@Override
protected void onResume() {
super.onResume();
mGlSurface.onResume();
}
@Override
protected void onPause() {
super.onPause();
mGlSurface.onPause();
}
希望得到这个帮助。