我正在尝试理解Renderscript中的映射内核。
示例映射内核如下所示
uchar4 RS_KERNEL invert(uchar4 in, uint32_t x, uint32_t y) {
uchar4 out = in;
out.r = 255 - in.r;
out.g = 255 - in.g;
out.b = 255 - in.b;
return out;
}
但是,x,y参数的含义并不清楚(x是否指向位图中给定像素的高度或宽度)
官方文档只说了很多关于x,y
的内容映射内核函数或简化内核累加器函数可以使用特殊参数x,y和z访问当前执行的坐标,该参数必须是int或uint32_t类型。这些参数是可选的。
这是关键信息,因为交换和访问可能导致越界错误。如果您已经参与其中,请提供您的见解。
答案 0 :(得分:2)
x
和y
(和z
,如果使用3D分配)是宽度和高度(以及3D的深度)。这意味着您的内核函数的in
参数与x
,y
处的分配中的数据相对应。