4

我有一个关于带有 rs_script_call_t* 参数的 Androids Renderscript rsForEach 函数如何工作的问题。在示例中,仅使用了另一个(简单)rsForEach 函数,所以这对我没有帮助。我想更改数组的 xStart 和 xEnd 并尝试不同的 RS_FOR_EACH_STRATEGY。我知道我必须构造一个 rs_script_call_t 结构并将字段设置为正确的值。但是,任何使用此 rsForEach 调用的尝试都会导致 SIGSEGV 和核心转储。

在 rs_script_call 结构中(在 rs_math.rsh 中):

  • xStart、xEnd、yStart、yEnd、zStart、zEnd 值指的是什么?指数还是指针?
  • arrayStart 和 arrayEnd 值指的是什么?指数还是指针?
  • 这些的默认值是什么?

是否有更多文档(或示例)解释如何正确使用带有 rs_script_call_t* 参数的 rsForEach 函数?

4

1 回答 1

1

x/y/z/start/end 值是计算脚本正在处理的内存分配的索引。该结构可以将 rsForEach 调用限制为分配的子区域。

例如,对于 640x480 的分配,您可以定义 xStart = 100; xEnd = 200; y开始 = 100; yEnd = 200。然后 foreach 调用将在分配的 100x100 区域上启动。

现在的arrayStart 和arrayEnd 目前没有被使用,但是是为将来的版本定义的,它将支持分配中的数组维度。

默认值未定义,您需要在结构中定义自己的值。如果您不使用该结构,则 rsForEach 调用将对整个内存分配起作用。

在 Honeycomb 中使用它时有一个已知的错误会导致崩溃,所以这可能是您的问题。它已在 ICS 中修复。

于 2011-11-22T01:26:55.667 回答