Element
public class Element
extends BaseObj
元素表示Allocation
内的一个项目。 元素大致相当于RenderScript内核中的C类型。 元素可能是基本的或复杂的。 一些基本要素是
- A single float value (equivalent to a float in a kernel)
- A four-element float vector (equivalent to a float4 in a kernel)
- An unsigned 32-bit integer (equivalent to an unsigned int in a kernel)
- A single signed 8-bit integer (equivalent to a char in a kernel)
一个复杂的元素大致相当于一个C结构,并且包含许多基本元素或复杂元素。 从Java代码中,复杂元素包含代表特定数据结构的子元素和名称列表。 通过使用从特定脚本反映的ScriptField_structname
类,RS脚本中使用的结构可用于Java代码。
基本元素由Element.DataType
和Element.DataKind
。 DataType编码一个元素的C类型信息,而DataKind编码该元素应该如何解释Sampler
。 请注意,具有DataKind USER
Allocation
对象不能用作Sampler
输入。 一般来说,打算与Sampler
一起使用的Allocation
对象应使用位图派生的元素,例如RGBA_8888(RenderScript)
或android.support.v8.renderscript
。
Developer Guides
有关创建使用RenderScript的应用程序的更多信息,请阅读 RenderScript开发人员指南。
Summary
Public methods
BOOLEAN
Element BOOLEAN (RenderScript rs)
用于返回包含单个布尔值的元素的实用程序函数。
Parameters |
rs |
RenderScript : Context to which the element will belong. |
I8
Element I8 (RenderScript rs)
用于返回包含单个SIGNED_8的Element的实用程序函数。
Parameters |
rs |
RenderScript : Context to which the element will belong. |
U8
Element U8 (RenderScript rs)
用于返回包含单个UNSIGNED_8的Element的实用程序函数。
Parameters |
rs |
RenderScript : Context to which the element will belong. |
createPixel
Element createPixel (RenderScript rs,
Element.DataType dt,
Element.DataKind dk)
创建一个新的像素元素类型。 必须提供匹配的DataType和DataKind。 DataType和DataKind必须包含相同数量的组件。 矢量大小将被设置为1。
Parameters |
rs |
RenderScript : The context associated with the new Element. |
dt |
Element.DataType : The DataType for the new element. |
dk |
Element.DataKind : The DataKind to specify the mapping of each component in the DataType. |
createVector
Element createVector (RenderScript rs,
Element.DataType dt,
int size)
创建指定DataType和矢量大小的自定义矢量元素。 DataKind将被设置为USER。 只支持原始类型(FLOAT_32,FLOAT_64,SIGNED_8,SIGNED_16,SIGNED_32,SIGNED_64,UNSIGNED_8,UNSIGNED_16,UNSIGNED_32,UNSIGNED_64,BOOLEAN)。
Parameters |
rs |
RenderScript : The context associated with the new Element. |
dt |
Element.DataType : The DataType for the new Element. |
size |
int : Vector size for the new Element. Range 2-4 inclusive supported. |
getBytesSize
int getBytesSize ()
Returns |
int |
element size in bytes |
getDummyElement
long getDummyElement (RenderScript mRS)
Parameters |
mRS |
RenderScript
|
getSubElement
Element getSubElement (int index)
对于复杂的元素,这个函数将返回索引处的子元素
Parameters |
index |
int : index of the sub-element to return |
Returns |
Element |
sub-element in this element at given index |
getSubElementArraySize
int getSubElementArraySize (int index)
对于复杂的元素,一些子元素可能是静态大小的数组。 该函数将返回索引处子元素的数组大小
Parameters |
index |
int : index of the sub-element |
Returns |
int |
array size of sub-element in this element at given index |
getSubElementCount
int getSubElementCount ()
元素可能很简单,例如int或float,或者具有多个子元素的结构,例如float,float2,float4的集合。 这个函数返回零为简单的元素或否则子元素的数量。
Returns |
int |
number of sub-elements in this element |
getSubElementName
String getSubElementName (int index)
对于复杂的元素,该函数将返回索引处的子元素名称
Parameters |
index |
int : index of the sub-element |
Returns |
String |
sub-element in this element at given index |
getSubElementOffsetBytes
int getSubElementOffsetBytes (int index)
该函数指定元素内子元素的位置
Parameters |
index |
int : index of the sub-element |
Returns |
int |
offset in bytes of sub-element in this element at given index |
getVectorSize
int getVectorSize ()
返回矢量分量的数量。 2代表float2,4代表float4等。
Returns |
int |
element vector size |
isCompatible
boolean isCompatible (Element e)
检查当前元素是否与另一个元素兼容。 如果原始元素共享相同的基础大小和类型(即U8与A_8兼容),则它们是兼容的。 用户定义的元素必须相同才能兼容。 这要求对所有子元素进行严格的名称等价(除了结构等价)。
Parameters |
e |
Element : The Element to check compatibility with. |
Returns |
boolean |
boolean true if the Elements are compatible, otherwise false. |
isComplex
boolean isComplex ()
如果元素太复杂,无法用作Mesh或程序的数据源,则返回。