gpt4 book ai didi

android - 从 Renderscript 内核返回 Renderscript 结构

转载 作者:行者123 更新时间:2023-11-29 01:49:06 24 4
gpt4 key购买 nike

我希望从我的 renderscript 内核返回一个结构数组。我的问题是,虽然我可以使用生成的代码在 java 中创建一个结构数组,并通过获取由此生成的数组的分配将其传递给我的根方法,但我无法将数组返回到 java 中。 Renderscript 文档说使用 copyTo 方法从分配中复制出来,以确保 renderscript 已完成对其的操作。但是这个方法只支持float, int, byte, bitmap。即使在访问数组之前等待几秒钟以确保渲染脚本已经完成,输出分配中的数据似乎根本没有改变,所以我想知道我是否正在接近这个错误。

感谢任何帮助

编辑澄清:

我使用以下代码在 java 中创建我的结构数组

    ScriptField_NBody bodys = ScriptField_NBody.create1D(mRS, size, Allocation.USAGE_SCRIPT);
ScriptField_NBody outBodys = new ScriptField_NBody(mRS, 1);

然后我在填充主体后调用我的 renderscript 函数

    nBodyScript.forEach_root(bodys.getAllocation(), outBodys.getAllocation())

我的渲染脚本应该简单地将 body 复制到 outBodys

 void root(const NBody_t *v_in, NBody_t *v_out, uint32_t x) {
*v_out = *v_in;
}

回到 java 我现在想访问 outBodies,(从调试代码我知道我的 renderscript 函数读取数据并复制它很好)。但是我不能在 outBodys.getllocation() 函数上使用标准的 copyTo,因为它只能接受 float 、整数、字节和位图,outBodies 对象也不会自行从分配中更新。请注意,NBody_t 是我在渲染脚本文件中定义的结构。

最佳答案

RenderScript 当前不反射(reflect)将值从用户定义的结构复制回 Java 的方法。我们确实只有对原始 Java 和向量类型进行操作的方法。分配仍可由其他内核或脚本端函数使用。

关于android - 从 Renderscript 内核返回 Renderscript 结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19418416/

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