Android, OpenGL 2.0 и многопоточность
Есть сильное чувство, что я чего-то не понимаю.
Методы обновления и рисования GLSurfaceView, вызываются в своём потоке. В другом потоке я меняю игровой мир с дофига большим состоянием (ибо стратегия). На данный момент мне в голову приходит такой способ: в потоке логики изменять состояние мира PHP код:
PHP код:
PHP код:
Мне кажется, что если я вызову рисование, а потом сразу начну менять мир какой-нибудь долгой операцией (порядка секунды), то метод onDrawFrame, может быть вызван чуть позже, чем я начну снова менять мир - получится, что рисования изменений не произошло (вернее, оно завершится, но в лучшем случае через секунду), а так нехорошо. Проще говоря, мне нужно заблокироваться до того момента, как экран будет обновлён, и только после возобновить поток с игровой логикой. Как это по-человечески без велосипедов сделать? |
Часовой пояс GMT +4, время: 09:25. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot