我正在使用OpenGL ES在Android应用程序中进行绘画。
我想编写一个从UI线程调用的函数,该函数将调用渲染器线程并让它读取并返回图像给调用者。
我考虑使用Future使UI线程休眠,同时渲染器线程写入图像数据(该操作非常快,因此用户不会感到应用程序失去响应性)。
但是我不知道如何将Future提交给渲染器线程。我找到的所有示例都创建自己的线程,然后将Future提交给这些线程。有关GLSurfaceView的文档提到:“queueEvent()方法用于在UI线程和渲染线程之间安全地通信。如果您愿意,可以使用其他Java跨线程通信技术,例如Renderer类本身上的同步方法。”因此,使用Future代替调用
我想编写一个从UI线程调用的函数,该函数将调用渲染器线程并让它读取并返回图像给调用者。
我考虑使用Future使UI线程休眠,同时渲染器线程写入图像数据(该操作非常快,因此用户不会感到应用程序失去响应性)。
但是我不知道如何将Future提交给渲染器线程。我找到的所有示例都创建自己的线程,然后将Future提交给这些线程。有关GLSurfaceView的文档提到:“queueEvent()方法用于在UI线程和渲染线程之间安全地通信。如果您愿意,可以使用其他Java跨线程通信技术,例如Renderer类本身上的同步方法。”因此,使用Future代替调用
queueEvent()
可能是可行的,但我不知道如何做到这一点。