Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
Androidにすべてのテクスチャとシェーダープログラムを強制的に破棄させる最良の方法は何だろうと思っていましたか?
GLSurfaceView.onPause を呼び出してから GLSurfaceView.onResume を呼び出すとうまくいくようですが、それが正しいかどうかはわかりません。私が考えたもう 1 つのことは、ゲームを 2 つのアクティビティに分割し、新しいレベルをロードする必要があるたびに制御を前後に移動することでしたが、それは醜いアプローチのように思えました。
あなたが持っているもの(一時停止/再開)はうまくいくはずです。
ハニカム以前のデバイスでは、glsurfaceview を一時停止するとコンテキストが破棄され、すべてのシェーダーとリソースが破棄されます。
ハニカムの後に、と呼ばれる関数がありsetPreserveEGLContextOnPause、サーフェスビューが一時停止されたときにコンテキストを保持するオプションを提供します。これはデフォルトでfalseに設定されているため、コンテキストを保持したくない場合は、一時停止イベントによって常に破棄されます。
setPreserveEGLContextOnPause