0

我想知道强制android销毁所有纹理和着色器程序的最佳方法是什么?

我发现调用 GLSurfaceView.onPause 然后调用 GLSurfaceView.onResume 似乎有效,但我不确定这是否正确。我想到的另一件事是将游戏分成 2 个活动,并在每次需要加载新关卡时来回转移控制,但这似乎是一种丑陋的方法。

4

1 回答 1

2

我认为你所拥有的(暂停/恢复)应该可以工作。

在 pre-honeycomb 设备上,暂停 glsurfaceview 会破坏上下文,这将破坏所有着色器和资源。

在honeycomb 之后,有一个名为 的函数setPreserveEGLContextOnPause,它为您提供了在surfaceview 暂停时保留上下文的选项。这默认为false,因此除非您想保留上下文,否则它将始终被暂停事件破坏。

于 2013-01-13T18:35:24.877 回答