Sto usando OpenGL ES per eseguire il disegno in un'app Android.Android: sincronizzazione con il thread di rendering OpenGL
Desidero scrivere una funzione chiamata dal thread dell'interfaccia utente che chiamerebbe il thread di rendering e ottenerlo per leggere e restituire l'immagine al chiamante.
Stavo pensando di usare un Future in modo che il thread dell'interfaccia utente si interrompesse mentre il thread di rendering scrive i dati dell'immagine (l'operazione è molto veloce, quindi l'utente non si sentirebbe come se l'app non rispondesse).
Ma non riesco a dire come inviare il futuro al thread di rendering. Tutti gli esempi che ho trovato creano i loro thread e poi presentano il futuro a questi thread. La documentazione su GLSurfaceView menziona "Il metodo queueEvent() viene utilizzato per comunicare in modo sicuro tra il thread dell'interfaccia utente e il thread di rendering.Se si preferisce, è possibile utilizzare un'altra tecnica di comunicazione cross-thread Java, come i metodi sincronizzati sulla classe Renderer stessa ". quindi sembra che usare un Futuro invece di chiamare queueEvent()
sia possibile, ma non ho idea di come farlo.