LibGDX: Как можно легко определить, потерялся ли контекст opengl?

Есть ли обратный вызов для получения уведомления после того, как контекст openGL затерялся?

Я пробовал ApplicationListener / Game.resume (), но (на Android) есть случаи, когда функция resume () вызывается, хотя контекст не был потерян. Как и в некоторых других случаях, когда контекст действительно терялся, но resume () вообще не вызывался.

Каков правильный способ надежно определить, потерял ли контекст openGL в libGDX?

Нет простого решения для приложения с управляемыми и неуправляемыми / динамическими текстурами. В статье объясняется, почему вы не можете получить триггер. Я бы рекомендовал использовать AssetManager, чтобы вы могли обновлять свои активы по методу возобновления ApplicationListener. Вы должны посетить и прочитать обе ссылки.

Очень маловероятно, что в первую очередь у вас будет потеря контекста. См. Это сообщение для более подробного объяснения. Но даже если у вас есть потеря в контексте (что произойдет только на очень старых Android-устройствах под управлением Android 2.x), то libGDX позаботится об этом и восстановит ресурсы для вас. Тебе не нужно ничего делать.

Скорее всего, вы как-то «думаете», что у вас есть потеря контекста, а на самом деле у вас другая проблема. Например, наиболее распространенная причина, по которой люди считают, что они имеют потерю контекста, – это когда они используют static ресурсы. Например, используя шаблон singleton с ленивой инициализацией.

Конечно, не видя никакого кода, это просто догадывается.