Рисовать из заднего буфера, пока не будет завершено долгое изменение состояния мира - PullRequest
0 голосов
/ 03 августа 2020

У меня есть игра 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
    }
}

Какие есть варианты? Кажется, что самым безопасным было бы рендерить кадр в текстуру, затем продолжать рисовать текстуру до завершения изменения состояния мира, а затем возобновить нормальный рендеринг. Я не могу продолжать рисовать состояние мира, пока происходит длительная модификация.

Спасибо

...