Рендеринг OpenGLES при выполнении длинного процессора на Android - PullRequest
0 голосов
/ 25 марта 2012

Я работаю над созданием игры (и игрового движка) на платформе Android с использованием opengl es 1.x. Загружая данные уровня и создавая его, я хочу визуализировать другую сцену, чтобы у игрока было что посмотреть, пока код загрузки уровня работает. Я подумал об использовании системы перехвата, где код загрузки уровня время от времени вызывал бы функцию обратного вызова, которая могла бы выполнять рендеринг.

Проблема в том, как я могу вручную заставить OpenGL ES отображать содержимое буфера, так как код загрузки уровней выполняет свою работу в потоке opengl, поскольку он также использует вызовы opengl es для выполнения своей работы?

Любой совет с благодарностью, Спасибо

1 Ответ

1 голос
/ 25 марта 2012

Вы можете попытаться сделать наоборот, чтобы ваш код загрузки вызывал код рендеринга (пусть код рендеринга будет вызывать код загрузки, когда между сессиями есть промежуток времени). Разделите (и покорите) свою загрузку на как можно меньшие доли (считайте только 100 байтов буфера изображения и т. Д.) И вызовите общий метод load (), который выполнит наименьший объем работы перед возвратом, а затем если у вас есть время для повторного вызова перед рендерингом следующего кадра, вызовите его снова и просто повторяйте до тех пор, пока не закончится время (чтобы сохранить некоторые целевые fps). Это будет работать хорошо только в том случае, если вы сможете разделить почти всю загрузку на небольшие порции и создать очередь для загрузки «заданий».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...