首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从Renderscript内核返回Renderscript结构

从Renderscript内核返回Renderscript结构
EN

Stack Overflow用户
提问于 2013-10-17 04:39:21
回答 2查看 675关注 0票数 3

我希望从renderscript内核返回一个结构数组。我的问题是,虽然我可以使用生成的代码在java中创建一个struct数组,并通过获得由此生成的数组的分配将其传递给根方法,但我无法将数组返回到java中。Renderscript文档要求使用copyTo方法复制出分配,这确保renderscript已经完成了对它的操作。但是,此方法只支持浮点、int、字节、位图。即使在访问数组之前等待了几秒钟,以确保renderscript已经完成了out分配中的数据,也不会出现任何变化,所以我想知道我是否在接近错误。

任何帮助都很感激

编辑以求澄清:

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

代码语言:javascript
复制
    ScriptField_NBody bodys = ScriptField_NBody.create1D(mRS, size, Allocation.USAGE_SCRIPT);
    ScriptField_NBody outBodys = new ScriptField_NBody(mRS, 1);

然后在填充完body后调用renderscript函数。

代码语言:javascript
复制
    nBodyScript.forEach_root(bodys.getAllocation(), outBodys.getAllocation())

我的renderscript应该简单地将bodys复制到outBodys

代码语言:javascript
复制
 void root(const NBody_t *v_in, NBody_t *v_out, uint32_t x) {
*v_out = *v_in;
 }

在java中,我现在想访问outBodies (从调试代码中,我知道我的renderscript函数读取数据并很好地复制它)。但是,我不能在outBodys.getllocation()函数上使用标准的outBodys.getllocation()函数,因为它只能使用浮点数、int、字节和位图,outBodies对象本身也不能从分配中更新。注意,NBody_t是我在renderscript文件中定义的一个结构。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-10-17 07:43:20

RenderScript目前没有反映将值从用户定义的结构复制回Java的方法。实际上,我们只有对原始Java和向量类型进行操作的方法。该分配仍然可用于其他内核或脚本端函数。

票数 2
EN

Stack Overflow用户

发布于 2016-07-29 07:24:33

实际上,您应该使用分配类的copy1DRangeToUnchecked方法。您可以将其复制到您自己的ByteBuffer中,并自己反序列化它。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19418416

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档