谷歌关于RenderScript的代码不起作用?

时间:2016-09-06 12:21:10

标签: android renderscript

我发现google关于RenderScript的文档有更新(https://developer.android.com/guide/topics/renderscript/compute.html)。所以我用它的代码进行测试,但是得到了关于

的错误
Error:(31, 23) error: implicit declaration of function 'rsCreateAllocation_uchar4' is invalid in C99
Error:(31, 17) error: initializing 'rs_allocation' (aka 'struct rs_allocation') with an expression of incompatible type 'int'

这就是代码:

rs_allocation tmp = rsCreateAllocation_uchar4(imageWidth, imageHeight);
rsForEach(invert, inputImage, tmp);
rsForEach(greyscale, tmp, outputImage);

所以我想知道: 1:为什么会发生这种情况(我认为sdk api是原因,但我已将AS,SDK和sdk工具更新到最新版本)? 2:

之间的区别是什么
uchar4 RS_KERNEL root(uchr4 in, unit32_t x, uint32_t y)

void RS_KERNEL root(uchr4* in, uchar4* out, unit32_t x, uint32_t y)

我认为第二种方法更快?!但我无法确定。 并且使用指针作为参数的方法用于未命名为root()的函数(我测试它)。如果指针参数的方法更快,我如何在一个中使用2个或更多内核函数RS文件?

1 个答案:

答案 0 :(得分:5)

rsCreateAllocation *()函数仅在定位Android Nougat时可用(即API级别24及更高级别)。我假设您收到此错误,因为您选择的RenderScript目标API远低于此。