gpt4 book ai didi

Android:与 OpenGL 渲染器线程同步

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:38:20 27 4
gpt4 key购买 nike

我正在使用 OpenGL ES 在 Android 应用程序中执行绘图。

我想编写一个从 UI 线程调用的函数,该函数将调用渲染器线程并让它读取图像并将图像返回给调用者。

我正在考虑使用 Future这样 UI 线程就会在渲染器线程写入图像数据时休眠(该操作非常快,因此用户不会觉得应用程序变得无响应)。

但是我不知道如何将 Future 提交给渲染器线程。我找到的所有示例都创建了自己的线程,然后将 future 提交给这些线程。关于 GLSurfaceView 的文档提到“queueEvent() 方法用于 UI 线程和渲染线程之间的安全通信。如果您愿意,可以使用其他一些 Java 跨线程通信技术,例如 Renderer 类本身的同步方法。”所以看起来使用 Future 而不是调用 queueEvent() 是可能的,但我不知道该怎么做。

最佳答案

你这个,我没有测试过,所以可能行不通:

FutureTask<YourReturnObject> futureTask = new FutureTask<YourReturnObject>(new Callable<YourReturnObject>() {
@Override
public YourReturnObject call() throws Exception {
//your gl stuff here
return // result
}
});
glSurfaceView.queueEvent(futureTask);
YourReturnObject result=futureTask.get(); // should block until gl thread is done.

关于Android:与 OpenGL 渲染器线程同步,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8441210/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com