У меня есть игра libgdx, и в какой-то момент мне нужно внести изменение в состояние мира игры, что может занять несколько секунд. В это время я хочу продолжать рендеринг старого состояния игры. Изменение мирового состояния происходит в отдельном потоке от потока рендеринга.
Я попытался выйти из функции draw () раньше, но это привело к мерцанию экрана, я полагаю, потому что содержимое одного из задних буферов используется, который имеет содержимое из N-1 кадров a go. Пример:
public class MyGame extends ApplicationAdapter {
@Override
public void render() {
if (mIsDoingLongOperation) {
return; // leave what's already on screen alone
}
// continue drawing world state
}
}
Какие есть варианты? Кажется, что самым безопасным было бы рендерить кадр в текстуру, затем продолжать рисовать текстуру до завершения изменения состояния мира, а затем возобновить нормальный рендеринг. Я не могу продолжать рисовать состояние мира, пока происходит длительная модификация.
Спасибо