gpt4 book ai didi

java - 如何计算传递给 renderscript 文件的数组

转载 作者:行者123 更新时间:2023-12-01 09:07:43 24 4
gpt4 key购买 nike

我想在 android 中创建一个渲染脚本,其中将数组传递到 .rs 文件。对这些值进行一些计算并将其发送回用户。

我对渲染脚本了解甚少,所以我写的也可能是完全错误的。请帮我解决一下。

Android Activity 公共(public)类 RenderTemp 扩展 Activity {

    private RenderScript mRS;
private ScriptC_snow mScript;
int[] indices;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.render);
indices = new int[2];
indices[0] = 1;
indices[1] = 2;
createScript();
}

private void createScript() {
mRS = RenderScript.create(this);
Allocation mIN = Allocation.createSized(mRS, Element.I32(mRS), indices.length);
mIN.copyFrom(indices);
mScript = new ScriptC_snow(mRS);
mScript.forEach_root(mIN);
mIN.copyTo(indices);
}
}

snow.rs

#pragma version(1)
#pragma rs java_package_name(#package name)


int32_t *mIN;

void __attribute__((kernel)) root(int32_t in)
{
in = in + 2;
}

最佳答案

修改内核中的“in”不会导致任何内容更新。您可以更改它,使 root() 函数也具有 int32_t 的返回值。然后执行“return in + 2;”。最后,您可以将输入和输出的 mIN 传递给 forEach(因此“mScript.forEach_root(mIn, mIn);”)。尽管这对您有用,但我强烈建议您将任何实际工作的输入和输出分配分开,因为像这样的别名输入/输出可能会阻止编译器对更复杂的代码进行优化。

关于java - 如何计算传递给 renderscript 文件的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41129194/

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