Android RenderScript矩阵_2x2元素数据类型

Android RenderScript矩阵_2x2元素数据类型,android,matrix,types,element,renderscript,Android,Matrix,Types,Element,Renderscript,我对Android RenderScript框架中的矩阵_2X2元素有一个问题: RenderScript myRS = RenderScript.create(this); Element myElement = Element.MATRIX_2X2(myRS); 我不知道这个矩阵的条目的数据类型是什么,即int16、int32、float32等等 换句话说,我不知道如何用我想要的数据类型的条目创建矩阵_2X2元素 我在Android开发者网站上找不到关于这个问题的任何文档,如果有人能帮我解

我对Android RenderScript框架中的矩阵_2X2元素有一个问题:

RenderScript myRS = RenderScript.create(this);
Element myElement = Element.MATRIX_2X2(myRS);
我不知道这个矩阵的条目的数据类型是什么,即int16、int32、float32等等

换句话说,我不知道如何用我想要的数据类型的条目创建矩阵_2X2元素

我在Android开发者网站上找不到关于这个问题的任何文档,如果有人能帮我解决这个问题,我将不胜感激

编辑:

现在我们知道数据类型是float32,我编写了一个简单的测试代码。 这是内核代码(Test.rs):

将引发此异常:

android.renderscript.RSIllegalArgumentException: 32 bit float source does not match allocation type MATRIX_4X4
如果我使用:

inAllocation.copyFrom(in_1d);
而不是:

inAllocation.copyFromUnchecked(in_1d);
对于输入分配,我会得到相同的异常。但是没有这样的“copyToUnchecked”方法来代替“copyTo”


如何解决此问题?

rs\U矩阵类仅包含浮点数。您不能为任何其他类型创建它们。

在API 23中,您可以使用copy1DRangeToUnchecked(),但在早期版本中,您可能必须将矩阵_4X4的使用限制为不需要复制到Java端内存的分配。
android.renderscript.RSIllegalArgumentException: 32 bit float source does not match allocation type MATRIX_4X4
inAllocation.copyFrom(in_1d);
inAllocation.copyFromUnchecked(in_1d);