我想了解Renderscript。有人可以看看这段代码,让我知道in
参数是什么?它不是一个分配对象,所以它是一个元素?为什么它是一个数组呢?Renderscript,`in`参数是什么?
(我从这里的代码,并且修改了它,http://www.jayway.com/2014/02/11/renderscript-on-android-basics/)
#pragma version(1)
#pragma rs java_package_name(foo.bar)
rs_allocation inPixels;
int height;
int width;
void root(const uchar4 *in, uchar4 *out, uint32_t x, uint32_t y) {
float3 pixel = convert_float4(in[0]).rgb;
pixel.r = (pixel.r + pixel.g + pixel.b)/3;
pixel.g = (pixel.r + pixel.g + pixel.b)/3;
pixel.b = (pixel.r + pixel.g + pixel.b)/3;
int topRight
//float4 f4 = rsUnpackColor8888(*(uchar*)rsGetElementAt(inPixels, x+1, y+1));
out->xyz = convert_uchar3(pixel);
}
这是什么线convert_float4(in[0])
呢? 索引0指向什么?第一个像素?所以如果我想访问下一个像素,我应该增加一个?
多少位“在”确实有?我怎么知道它的大小?不管我输入的数字是多少,都不会引发出界错误 –
* in只是您在Java中创建的单个单元格的占位符。你不能用它来索引[0]或* in以外的任何内容(这是等价的)。这同样适用于。 –