Android: синхронизация с потоком рендеринга OpenGL

Я использую OpenGL ES для рисования в приложении Android.

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

Я думал об использовании Future , чтобы поток пользовательского интерфейса спал, пока поток рендерера записывал данные изображения (эта операция выполняется очень быстро, поэтому пользователь не почувствует, что приложение перестало отвечать на запросы) .

Но я не понимаю, как передать будущее потоку рендеринга. Все примеры, которые я нашел, создают свои собственные потоки, а затем отправляют в них будущее. В документации по GLSurfaceView упоминается: «Метод queueEvent () используется для безопасного взаимодействия между потоком пользовательского интерфейса и потоком рендеринга. Если вы предпочитаете, вы можете использовать другой метод межпотокового взаимодействия Java, например синхронизированный методы самого класса Renderer ". поэтому похоже, что использование Future вместо вызова queueEvent () возможно, но я понятия не имею, как это сделать.

6
задан Pooks 9 December 2011 в 04:49
поделиться