Android でテクスチャが破棄されたことを検出するにはどうすればよいですか? 現在、GLSurfaceView の Renderer クラスは次のようになっています。
public void onDrawFrame(GL10 gl)
{
nativeLibrary.drawFrame();
}
public void onSurfaceChanged(GL10 gl, int width, int height)
{
if (reload)
{
library.glRecreate(); //this method reloads destroyed textures
}
else
{
nativeLibrary.init(width, height)); //this method initializes my game
reload = true;
}
}
public void onSurfaceCreated(GL10 gl, EGLConfig config)
{
}
問題は、それが常に機能するとは限らないことです。ゲームのホームボタンを押してからもう一度起動すると、魔法のように機能します。しかし、デバイスをロックしてから再度ロックを解除すると、すべてのテクスチャが真っ黒になります。ロックするとすべてがリセットされるようです (私のゲームは常にメイン メニューに戻ります)。ホームボタンでゲームを終了し、その後ロック/アンロックを行ってもゲームがリセットされません。