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