概览
以下函数可用于获取和设置构成分配的单元。
- 使用 rsGetElementAt* 和 rsSetElementAt 函数访问单个单元。
- 使用 rsAllocationCopy* 和 rsAllocationV* 函数可以复制多个单元。
- 要通过采样器获取值,请使用 rsSample。
摘要
| 函数 | |
|---|---|
| rsAllocationCopy1DRange | 在分配之间复制连续单元 |
| rsAllocationCopy2DRange | 在分配之间复制一个矩形区域的单元 |
| rsAllocationVLoadX | 从标量分配中获取一个向量 |
| rsAllocationVStoreX | 将一个向量存储到标量分配中 |
| rsGetElementAt | 从分配中返回一个单元 |
| rsGetElementAtYuv_uchar_U | 获取 YUV 分配的 U 分量 |
| rsGetElementAtYuv_uchar_V | 获取 YUV 分配的 V 分量 |
| rsGetElementAtYuv_uchar_Y | 获取 YUV 分配的 Y 分量 |
| rsSample | 从纹理分配中采样一个值 |
| rsSetElementAt | 设置分配的一个单元 |
函数
rsAllocationCopy1DRange : 在分配之间复制连续单元
| void rsAllocationCopy1DRange(rs_allocation dstAlloc, uint32_t dstOff, uint32_t dstMip, uint32_t count, rs_allocation srcAlloc, uint32_t srcOff, uint32_t srcMip); | 添加于 API 级别 14 |
参数
| dstAlloc | 要将单元复制到的分配。 |
|---|---|
| dstOff | 目标分配中要复制到的第一个单元的偏移量。 |
| dstMip | 目标分配中的 Mip 级别。如果未使用 Mip 映射,则为 0。 |
| count | 要复制的单元数量。 |
| srcAlloc | 源分配。 |
| srcOff | 源分配中要复制的第一个单元的偏移量。 |
| srcMip | 源分配中的 Mip 级别。如果未使用 Mip 映射,则为 0。 |
将指定数量的单元从一个分配复制到另一个分配。
这两个分配必须不同。使用此函数在同一个分配内进行复制将导致未定义的结果。
该函数不验证偏移量加数量是否超出任一分配的大小。请务必小心!
此函数只能用于 1D 分配之间的复制。在其他分配上调用它将导致未定义的结果。
不应在内核内部调用此函数,也不应在任何可能直接或间接从内核调用的函数中调用此函数。这样做将导致运行时错误。
rsAllocationCopy2DRange : 在分配之间复制一个矩形区域的单元
| void rsAllocationCopy2DRange(rs_allocation dstAlloc, uint32_t dstXoff, uint32_t dstYoff, uint32_t dstMip, rs_allocation_cubemap_face dstFace, uint32_t width, uint32_t height, rs_allocation srcAlloc, uint32_t srcXoff, uint32_t srcYoff, uint32_t srcMip, rs_allocation_cubemap_face srcFace); | 添加于 API 级别 14 |
参数
| dstAlloc | 要将单元复制到的分配。 |
|---|---|
| dstXoff | 目标区域的 X 偏移量。 |
| dstYoff | 目标区域的 Y 偏移量。 |
| dstMip | 目标分配中的 Mip 级别。如果未使用 Mip 映射,则为 0。 |
| dstFace | 目标分配的 Cubemap 面。对于非 Cubemap 分配,此参数将被忽略。 |
| width | 要更新的传入区域的宽度。 |
| height | 要更新的传入区域的高度。 |
| srcAlloc | 源分配。 |
| srcXoff | 源区域的 X 偏移量。 |
| srcYoff | 源区域的 Y 偏移量。 |
| srcMip | 源分配中的 Mip 级别。如果未使用 Mip 映射,则为 0。 |
| srcFace | 源分配的 Cubemap 面。对于非 Cubemap 分配,此参数将被忽略。 |
将一个矩形区域的单元从一个分配复制到另一个分配。(width * height) 个单元将被复制。
这两个分配必须不同。使用此函数在同一个分配内进行复制将导致未定义的结果。
该函数不验证源或目标区域是否超出各自分配的大小。请务必小心!
此函数只能用于 2D 分配之间的复制。在其他分配上调用它将导致未定义的结果。
不应在内核内部调用此函数,也不应在任何可能直接或间接从内核调用的函数中调用此函数。这样做将导致运行时错误。
rsAllocationVLoadX : 从标量分配中获取一个向量
| char2 rsAllocationVLoadX_char2(rs_allocation a, uint32_t x); | 添加于 API 级别 22 |
| char2 rsAllocationVLoadX_char2(rs_allocation a, uint32_t x, uint32_t y); | 添加于 API 级别 22 |
| char2 rsAllocationVLoadX_char2(rs_allocation a, uint32_t x, uint32_t y, uint32_t z); | 添加于 API 级别 22 |
| char3 rsAllocationVLoadX_char3(rs_allocation a, uint32_t x); | 添加于 API 级别 22 |
| char3 rsAllocationVLoadX_char3(rs_allocation a, uint32_t x, uint32_t y); | 添加于 API 级别 22 |
| char3 rsAllocationVLoadX_char3(rs_allocation a, uint32_t x, uint32_t y, uint32_t z); | 添加于 API 级别 22 |
| char4 rsAllocationVLoadX_char4(rs_allocation a, uint32_t x); | 添加于 API 级别 22 |
| char4 rsAllocationVLoadX_char4(rs_allocation a, uint32_t x, uint32_t y); | 添加于 API 级别 22 |
| char4 rsAllocationVLoadX_char4(rs_allocation a, uint32_t x, uint32_t y, uint32_t z); | 添加于 API 级别 22 |
| double2 rsAllocationVLoadX_double2(rs_allocation a, uint32_t x); | 添加于 API 级别 22 |
| double2 rsAllocationVLoadX_double2(rs_allocation a, uint32_t x, uint32_t y); | 添加于 API 级别 22 |
| double2 rsAllocationVLoadX_double2(rs_allocation a, uint32_t x, uint32_t y, uint32_t z); | 添加于 API 级别 22 |
| double3 rsAllocationVLoadX_double3(rs_allocation a, uint32_t x); | 添加于 API 级别 22 |
| double3 rsAllocationVLoadX_double3(rs_allocation a, uint32_t x, uint32_t y); | 添加于 API 级别 22 |
| double3 rsAllocationVLoadX_double3(rs_allocation a, uint32_t x, uint32_t y, uint32_t z); | 添加于 API 级别 22 |
| double4 rsAllocationVLoadX_double4(rs_allocation a, uint32_t x); | 添加于 API 级别 22 |
| double4 rsAllocationVLoadX_double4(rs_allocation a, uint32_t x, uint32_t y); | 添加于 API 级别 22 |
| double4 rsAllocationVLoadX_double4(rs_allocation a, uint32_t x, uint32_t y, uint32_t z); | 添加于 API 级别 22 |
| float2 rsAllocationVLoadX_float2(rs_allocation a, uint32_t x); | 添加于 API 级别 22 |
| float2 rsAllocationVLoadX_float2(rs_allocation a, uint32_t x, uint32_t y); | 添加于 API 级别 22 |
| float2 rsAllocationVLoadX_float2(rs_allocation a, uint32_t x, uint32_t y, uint32_t z); | 添加于 API 级别 22 |
| float3 rsAllocationVLoadX_float3(rs_allocation a, uint32_t x); | 添加于 API 级别 22 |
| float3 rsAllocationVLoadX_float3(rs_allocation a, uint32_t x, uint32_t y); | 添加于 API 级别 22 |
| float3 rsAllocationVLoadX_float3(rs_allocation a, uint32_t x, uint32_t y, uint32_t z); | 添加于 API 级别 22 |
| float4 rsAllocationVLoadX_float4(rs_allocation a, uint32_t x); | 添加于 API 级别 22 |
| float4 rsAllocationVLoadX_float4(rs_allocation a, uint32_t x, uint32_t y); | 添加于 API 级别 22 |
| float4 rsAllocationVLoadX_float4(rs_allocation a, uint32_t x, uint32_t y, uint32_t z); | 添加于 API 级别 22 |
| int2 rsAllocationVLoadX_int2(rs_allocation a, uint32_t x); | 添加于 API 级别 22 |
| int2 rsAllocationVLoadX_int2(rs_allocation a, uint32_t x, uint32_t y); | 添加于 API 级别 22 |
| int2 rsAllocationVLoadX_int2(rs_allocation a, uint32_t x, uint32_t y, uint32_t z); | 添加于 API 级别 22 |
| int3 rsAllocationVLoadX_int3(rs_allocation a, uint32_t x); | 添加于 API 级别 22 |
| int3 rsAllocationVLoadX_int3(rs_allocation a, uint32_t x, uint32_t y); | 添加于 API 级别 22 |
| int3 rsAllocationVLoadX_int3(rs_allocation a, uint32_t x, uint32_t y, uint32_t z); | 添加于 API 级别 22 |
| int4 rsAllocationVLoadX_int4(rs_allocation a, uint32_t x); | 添加于 API 级别 22 |
| int4 rsAllocationVLoadX_int4(rs_allocation a, uint32_t x, uint32_t y); | 添加于 API 级别 22 |
| int4 rsAllocationVLoadX_int4(rs_allocation a, uint32_t x, uint32_t y, uint32_t z); | 添加于 API 级别 22 |
| long2 rsAllocationVLoadX_long2(rs_allocation a, uint32_t x); | 添加于 API 级别 22 |
| long2 rsAllocationVLoadX_long2(rs_allocation a, uint32_t x, uint32_t y); | 添加于 API 级别 22 |
| long2 rsAllocationVLoadX_long2(rs_allocation a, uint32_t x, uint32_t y, uint32_t z); | 添加于 API 级别 22 |
| long3 rsAllocationVLoadX_long3(rs_allocation a, uint32_t x); | 添加于 API 级别 22 |
| long3 rsAllocationVLoadX_long3(rs_allocation a, uint32_t x, uint32_t y); | 添加于 API 级别 22 |
| long3 rsAllocationVLoadX_long3(rs_allocation a, uint32_t x, uint32_t y, uint32_t z); | 添加于 API 级别 22 |
| long4 rsAllocationVLoadX_long4(rs_allocation a, uint32_t x); | 添加于 API 级别 22 |
| long4 rsAllocationVLoadX_long4(rs_allocation a, uint32_t x, uint32_t y); | 添加于 API 级别 22 |
| long4 rsAllocationVLoadX_long4(rs_allocation a, uint32_t x, uint32_t y, uint32_t z); | 添加于 API 级别 22 |
| short2 rsAllocationVLoadX_short2(rs_allocation a, uint32_t x); | 添加于 API 级别 22 |
| short2 rsAllocationVLoadX_short2(rs_allocation a, uint32_t x, uint32_t y); | 添加于 API 级别 22 |
| short2 rsAllocationVLoadX_short2(rs_allocation a, uint32_t x, uint32_t y, uint32_t z); | 添加于 API 级别 22 |
| short3 rsAllocationVLoadX_short3(rs_allocation a, uint32_t x); | 添加于 API 级别 22 |
| short3 rsAllocationVLoadX_short3(rs_allocation a, uint32_t x, uint32_t y); | 添加于 API 级别 22 |
| short3 rsAllocationVLoadX_short3(rs_allocation a, uint32_t x, uint32_t y, uint32_t z); | 添加于 API 级别 22 |
| short4 rsAllocationVLoadX_short4(rs_allocation a, uint32_t x); | 添加于 API 级别 22 |
| short4 rsAllocationVLoadX_short4(rs_allocation a, uint32_t x, uint32_t y); | 添加于 API 级别 22 |
| short4 rsAllocationVLoadX_short4(rs_allocation a, uint32_t x, uint32_t y, uint32_t z); | 添加于 API 级别 22 |
| uchar2 rsAllocationVLoadX_uchar2(rs_allocation a, uint32_t x); | 添加于 API 级别 22 |
| uchar2 rsAllocationVLoadX_uchar2(rs_allocation a, uint32_t x, uint32_t y); | 添加于 API 级别 22 |
| uchar2 rsAllocationVLoadX_uchar2(rs_allocation a, uint32_t x, uint32_t y, uint32_t z); | 添加于 API 级别 22 |
| uchar3 rsAllocationVLoadX_uchar3(rs_allocation a, uint32_t x); | 添加于 API 级别 22 |
| uchar3 rsAllocationVLoadX_uchar3(rs_allocation a, uint32_t x, uint32_t y); | 添加于 API 级别 22 |
| uchar3 rsAllocationVLoadX_uchar3(rs_allocation a, uint32_t x, uint32_t y, uint32_t z); | 添加于 API 级别 22 |
| uchar4 rsAllocationVLoadX_uchar4(rs_allocation a, uint32_t x); | 添加于 API 级别 22 |
| uchar4 rsAllocationVLoadX_uchar4(rs_allocation a, uint32_t x, uint32_t y); | 添加于 API 级别 22 |
| uchar4 rsAllocationVLoadX_uchar4(rs_allocation a, uint32_t x, uint32_t y, uint32_t z); | 添加于 API 级别 22 |
| uint2 rsAllocationVLoadX_uint2(rs_allocation a, uint32_t x); | 添加于 API 级别 22 |
| uint2 rsAllocationVLoadX_uint2(rs_allocation a, uint32_t x, uint32_t y); | 添加于 API 级别 22 |
| uint2 rsAllocationVLoadX_uint2(rs_allocation a, uint32_t x, uint32_t y, uint32_t z); | 添加于 API 级别 22 |
| uint3 rsAllocationVLoadX_uint3(rs_allocation a, uint32_t x); | 添加于 API 级别 22 |
| uint3 rsAllocationVLoadX_uint3(rs_allocation a, uint32_t x, uint32_t y); | 添加于 API 级别 22 |
| uint3 rsAllocationVLoadX_uint3(rs_allocation a, uint32_t x, uint32_t y, uint32_t z); | 添加于 API 级别 22 |
| uint4 rsAllocationVLoadX_uint4(rs_allocation a, uint32_t x); | 添加于 API 级别 22 |
| uint4 rsAllocationVLoadX_uint4(rs_allocation a, uint32_t x, uint32_t y); | 添加于 API 级别 22 |
| uint4 rsAllocationVLoadX_uint4(rs_allocation a, uint32_t x, uint32_t y, uint32_t z); | 添加于 API 级别 22 |
| ulong2 rsAllocationVLoadX_ulong2(rs_allocation a, uint32_t x); | 添加于 API 级别 22 |
| ulong2 rsAllocationVLoadX_ulong2(rs_allocation a, uint32_t x, uint32_t y); | 添加于 API 级别 22 |
| ulong2 rsAllocationVLoadX_ulong2(rs_allocation a, uint32_t x, uint32_t y, uint32_t z); | 添加于 API 级别 22 |
| ulong3 rsAllocationVLoadX_ulong3(rs_allocation a, uint32_t x); | 添加于 API 级别 22 |
| ulong3 rsAllocationVLoadX_ulong3(rs_allocation a, uint32_t x, uint32_t y); | 添加于 API 级别 22 |
| ulong3 rsAllocationVLoadX_ulong3(rs_allocation a, uint32_t x, uint32_t y, uint32_t z); | 添加于 API 级别 22 |
| ulong4 rsAllocationVLoadX_ulong4(rs_allocation a, uint32_t x); | 添加于 API 级别 22 |
| ulong4 rsAllocationVLoadX_ulong4(rs_allocation a, uint32_t x, uint32_t y); | 添加于 API 级别 22 |
| ulong4 rsAllocationVLoadX_ulong4(rs_allocation a, uint32_t x, uint32_t y, uint32_t z); | 添加于 API 级别 22 |
| ushort2 rsAllocationVLoadX_ushort2(rs_allocation a, uint32_t x); | 添加于 API 级别 22 |
| ushort2 rsAllocationVLoadX_ushort2(rs_allocation a, uint32_t x, uint32_t y); | 添加于 API 级别 22 |
| ushort2 rsAllocationVLoadX_ushort2(rs_allocation a, uint32_t x, uint32_t y, uint32_t z); | 添加于 API 级别 22 |
| ushort3 rsAllocationVLoadX_ushort3(rs_allocation a, uint32_t x); | 添加于 API 级别 22 |
| ushort3 rsAllocationVLoadX_ushort3(rs_allocation a, uint32_t x, uint32_t y); | 添加于 API 级别 22 |
| ushort3 rsAllocationVLoadX_ushort3(rs_allocation a, uint32_t x, uint32_t y, uint32_t z); | 添加于 API 级别 22 |
| ushort4 rsAllocationVLoadX_ushort4(rs_allocation a, uint32_t x); | 添加于 API 级别 22 |
| ushort4 rsAllocationVLoadX_ushort4(rs_allocation a, uint32_t x, uint32_t y); | 添加于 API 级别 22 |
| ushort4 rsAllocationVLoadX_ushort4(rs_allocation a, uint32_t x, uint32_t y, uint32_t z); | 添加于 API 级别 22 |
参数
| a | 要从中获取数据的分配。 |
|---|---|
| x | 要复制的第一个单元在分配中的 X 偏移量。 |
| y | 要复制的第一个单元在分配中的 Y 偏移量。 |
| z | 要复制的第一个单元在分配中的 Z 偏移量。 |
此函数返回一个由分配的连续单元组成的向量。它假定分配包含标量。
名称中的“X”表示通过增加 X 索引来提取连续的值。目前没有函数可以获取递增其他维度的连续值。请改为多次调用 rsGetElementAt()。
例如,当调用 rsAllocationVLoadX_int4(a, 20, 30) 时,将返回一个由 a[20, 30]、a[21, 30]、a[22, 30] 和 a[23, 30] 组成的 int4。
从三维分配中检索时,请使用包含 x、y、z 的变体。类似地,对于二维分配,请使用包含 x、y 的变体;对于一维分配,请使用 x。
为了效率,此函数不验证输入。尝试环绕 X 索引、超出分配大小或使用与分配维度不兼容的索引将导致未定义的结果。
另请参阅 rsAllocationVStoreX()。
rsAllocationVStoreX : 将一个向量存储到标量分配中
| void rsAllocationVStoreX_char2(rs_allocation a, char2 val, uint32_t x); | 添加于 API 级别 22 |
| void rsAllocationVStoreX_char2(rs_allocation a, char2 val, uint32_t x, uint32_t y); | 添加于 API 级别 22 |
| void rsAllocationVStoreX_char2(rs_allocation a, char2 val, uint32_t x, uint32_t y, uint32_t z); | 添加于 API 级别 22 |
| void rsAllocationVStoreX_char3(rs_allocation a, char3 val, uint32_t x); | 添加于 API 级别 22 |
| void rsAllocationVStoreX_char3(rs_allocation a, char3 val, uint32_t x, uint32_t y); | 添加于 API 级别 22 |
| void rsAllocationVStoreX_char3(rs_allocation a, char3 val, uint32_t x, uint32_t y, uint32_t z); | 添加于 API 级别 22 |
| void rsAllocationVStoreX_char4(rs_allocation a, char4 val, uint32_t x); | 添加于 API 级别 22 |
| void rsAllocationVStoreX_char4(rs_allocation a, char4 val, uint32_t x, uint32_t y); | 添加于 API 级别 22 |
| void rsAllocationVStoreX_char4(rs_allocation a, char4 val, uint32_t x, uint32_t y, uint32_t z); | 添加于 API 级别 22 |
| void rsAllocationVStoreX_double2(rs_allocation a, double2 val, uint32_t x); | 添加于 API 级别 22 |
| void rsAllocationVStoreX_double2(rs_allocation a, double2 val, uint32_t x, uint32_t y); | 添加于 API 级别 22 |
| void rsAllocationVStoreX_double2(rs_allocation a, double2 val, uint32_t x, uint32_t y, uint32_t z); | 添加于 API 级别 22 |
| void rsAllocationVStoreX_double3(rs_allocation a, double3 val, uint32_t x); | 添加于 API 级别 22 |
| void rsAllocationVStoreX_double3(rs_allocation a, double3 val, uint32_t x, uint32_t y); | 添加于 API 级别 22 |
| void rsAllocationVStoreX_double3(rs_allocation a, double3 val, uint32_t x, uint32_t y, uint32_t z); | 添加于 API 级别 22 |
| void rsAllocationVStoreX_double4(rs_allocation a, double4 val, uint32_t x); | 添加于 API 级别 22 |
| void rsAllocationVStoreX_double4(rs_allocation a, double4 val, uint32_t x, uint32_t y); | 添加于 API 级别 22 |
| void rsAllocationVStoreX_double4(rs_allocation a, double4 val, uint32_t x, uint32_t y, uint32_t z); | 添加于 API 级别 22 |
| void rsAllocationVStoreX_float2(rs_allocation a, float2 val, uint32_t x); | 添加于 API 级别 22 |
| void rsAllocationVStoreX_float2(rs_allocation a, float2 val, uint32_t x, uint32_t y); | 添加于 API 级别 22 |
| void rsAllocationVStoreX_float2(rs_allocation a, float2 val, uint32_t x, uint32_t y, uint32_t z); | 添加于 API 级别 22 |
| void rsAllocationVStoreX_float3(rs_allocation a, float3 val, uint32_t x); | 添加于 API 级别 22 |
| void rsAllocationVStoreX_float3(rs_allocation a, float3 val, uint32_t x, uint32_t y); | 添加于 API 级别 22 |
| void rsAllocationVStoreX_float3(rs_allocation a, float3 val, uint32_t x, uint32_t y, uint32_t z); | 添加于 API 级别 22 |
| void rsAllocationVStoreX_float4(rs_allocation a, float4 val, uint32_t x); | 添加于 API 级别 22 |
| void rsAllocationVStoreX_float4(rs_allocation a, float4 val, uint32_t x, uint32_t y); | 添加于 API 级别 22 |
| void rsAllocationVStoreX_float4(rs_allocation a, float4 val, uint32_t x, uint32_t y, uint32_t z); | 添加于 API 级别 22 |
| void rsAllocationVStoreX_int2(rs_allocation a, int2 val, uint32_t x); | 添加于 API 级别 22 |
| void rsAllocationVStoreX_int2(rs_allocation a, int2 val, uint32_t x, uint32_t y); | 添加于 API 级别 22 |
| void rsAllocationVStoreX_int2(rs_allocation a, int2 val, uint32_t x, uint32_t y, uint32_t z); | 添加于 API 级别 22 |
| void rsAllocationVStoreX_int3(rs_allocation a, int3 val, uint32_t x); | 添加于 API 级别 22 |
| void rsAllocationVStoreX_int3(rs_allocation a, int3 val, uint32_t x, uint32_t y); | 添加于 API 级别 22 |
| void rsAllocationVStoreX_int3(rs_allocation a, int3 val, uint32_t x, uint32_t y, uint32_t z); | 添加于 API 级别 22 |
| void rsAllocationVStoreX_int4(rs_allocation a, int4 val, uint32_t x); | 添加于 API 级别 22 |
| void rsAllocationVStoreX_int4(rs_allocation a, int4 val, uint32_t x, uint32_t y); | 添加于 API 级别 22 |
| void rsAllocationVStoreX_int4(rs_allocation a, int4 val, uint32_t x, uint32_t y, uint32_t z); | 添加于 API 级别 22 |
| void rsAllocationVStoreX_long2(rs_allocation a, long2 val, uint32_t x); | 添加于 API 级别 22 |
| void rsAllocationVStoreX_long2(rs_allocation a, long2 val, uint32_t x, uint32_t y); | 添加于 API 级别 22 |
| void rsAllocationVStoreX_long2(rs_allocation a, long2 val, uint32_t x, uint32_t y, uint32_t z); | 添加于 API 级别 22 |
| void rsAllocationVStoreX_long3(rs_allocation a, long3 val, uint32_t x); | 添加于 API 级别 22 |
| void rsAllocationVStoreX_long3(rs_allocation a, long3 val, uint32_t x, uint32_t y); | 添加于 API 级别 22 |
| void rsAllocationVStoreX_long3(rs_allocation a, long3 val, uint32_t x, uint32_t y, uint32_t z); | 添加于 API 级别 22 |
| void rsAllocationVStoreX_long4(rs_allocation a, long4 val, uint32_t x); | 添加于 API 级别 22 |
| void rsAllocationVStoreX_long4(rs_allocation a, long4 val, uint32_t x, uint32_t y); | 添加于 API 级别 22 |
| void rsAllocationVStoreX_long4(rs_allocation a, long4 val, uint32_t x, uint32_t y, uint32_t z); | 添加于 API 级别 22 |
| void rsAllocationVStoreX_short2(rs_allocation a, short2 val, uint32_t x); | 添加于 API 级别 22 |
| void rsAllocationVStoreX_short2(rs_allocation a, short2 val, uint32_t x, uint32_t y); | 添加于 API 级别 22 |
| void rsAllocationVStoreX_short2(rs_allocation a, short2 val, uint32_t x, uint32_t y, uint32_t z); | 添加于 API 级别 22 |
| void rsAllocationVStoreX_short3(rs_allocation a, short3 val, uint32_t x); | 添加于 API 级别 22 |
| void rsAllocationVStoreX_short3(rs_allocation a, short3 val, uint32_t x, uint32_t y); | 添加于 API 级别 22 |
| void rsAllocationVStoreX_short3(rs_allocation a, short3 val, uint32_t x, uint32_t y, uint32_t z); | 添加于 API 级别 22 |
| void rsAllocationVStoreX_short4(rs_allocation a, short4 val, uint32_t x); | 添加于 API 级别 22 |
| void rsAllocationVStoreX_short4(rs_allocation a, short4 val, uint32_t x, uint32_t y); | 添加于 API 级别 22 |
| void rsAllocationVStoreX_short4(rs_allocation a, short4 val, uint32_t x, uint32_t y, uint32_t z); | 添加于 API 级别 22 |
| void rsAllocationVStoreX_uchar2(rs_allocation a, uchar2 val, uint32_t x); | 添加于 API 级别 22 |
| void rsAllocationVStoreX_uchar2(rs_allocation a, uchar2 val, uint32_t x, uint32_t y); | 添加于 API 级别 22 |
| void rsAllocationVStoreX_uchar2(rs_allocation a, uchar2 val, uint32_t x, uint32_t y, uint32_t z); | 添加于 API 级别 22 |
| void rsAllocationVStoreX_uchar3(rs_allocation a, uchar3 val, uint32_t x); | 添加于 API 级别 22 |
| void rsAllocationVStoreX_uchar3(rs_allocation a, uchar3 val, uint32_t x, uint32_t y); | 添加于 API 级别 22 |
| void rsAllocationVStoreX_uchar3(rs_allocation a, uchar3 val, uint32_t x, uint32_t y, uint32_t z); | 添加于 API 级别 22 |
| void rsAllocationVStoreX_uchar4(rs_allocation a, uchar4 val, uint32_t x); | 添加于 API 级别 22 |
| void rsAllocationVStoreX_uchar4(rs_allocation a, uchar4 val, uint32_t x, uint32_t y); | 添加于 API 级别 22 |
| void rsAllocationVStoreX_uchar4(rs_allocation a, uchar4 val, uint32_t x, uint32_t y, uint32_t z); | 添加于 API 级别 22 |
| void rsAllocationVStoreX_uint2(rs_allocation a, uint2 val, uint32_t x); | 添加于 API 级别 22 |
| void rsAllocationVStoreX_uint2(rs_allocation a, uint2 val, uint32_t x, uint32_t y); | 添加于 API 级别 22 |
| void rsAllocationVStoreX_uint2(rs_allocation a, uint2 val, uint32_t x, uint32_t y, uint32_t z); | 添加于 API 级别 22 |
| void rsAllocationVStoreX_uint3(rs_allocation a, uint3 val, uint32_t x); | 添加于 API 级别 22 |
| void rsAllocationVStoreX_uint3(rs_allocation a, uint3 val, uint32_t x, uint32_t y); | 添加于 API 级别 22 |
| void rsAllocationVStoreX_uint3(rs_allocation a, uint3 val, uint32_t x, uint32_t y, uint32_t z); | 添加于 API 级别 22 |
| void rsAllocationVStoreX_uint4(rs_allocation a, uint4 val, uint32_t x); | 添加于 API 级别 22 |
| void rsAllocationVStoreX_uint4(rs_allocation a, uint4 val, uint32_t x, uint32_t y); | 添加于 API 级别 22 |
| void rsAllocationVStoreX_uint4(rs_allocation a, uint4 val, uint32_t x, uint32_t y, uint32_t z); | 添加于 API 级别 22 |
| void rsAllocationVStoreX_ulong2(rs_allocation a, ulong2 val, uint32_t x); | 添加于 API 级别 22 |
| void rsAllocationVStoreX_ulong2(rs_allocation a, ulong2 val, uint32_t x, uint32_t y); | 添加于 API 级别 22 |
| void rsAllocationVStoreX_ulong2(rs_allocation a, ulong2 val, uint32_t x, uint32_t y, uint32_t z); | 添加于 API 级别 22 |
| void rsAllocationVStoreX_ulong3(rs_allocation a, ulong3 val, uint32_t x); | 添加于 API 级别 22 |
| void rsAllocationVStoreX_ulong3(rs_allocation a, ulong3 val, uint32_t x, uint32_t y); | 添加于 API 级别 22 |
| void rsAllocationVStoreX_ulong3(rs_allocation a, ulong3 val, uint32_t x, uint32_t y, uint32_t z); | 添加于 API 级别 22 |
| void rsAllocationVStoreX_ulong4(rs_allocation a, ulong4 val, uint32_t x); | 添加于 API 级别 22 |
| void rsAllocationVStoreX_ulong4(rs_allocation a, ulong4 val, uint32_t x, uint32_t y); | 添加于 API 级别 22 |
| void rsAllocationVStoreX_ulong4(rs_allocation a, ulong4 val, uint32_t x, uint32_t y, uint32_t z); | 添加于 API 级别 22 |
| void rsAllocationVStoreX_ushort2(rs_allocation a, ushort2 val, uint32_t x); | 添加于 API 级别 22 |
| void rsAllocationVStoreX_ushort2(rs_allocation a, ushort2 val, uint32_t x, uint32_t y); | 添加于 API 级别 22 |
| void rsAllocationVStoreX_ushort2(rs_allocation a, ushort2 val, uint32_t x, uint32_t y, uint32_t z); | 添加于 API 级别 22 |
| void rsAllocationVStoreX_ushort3(rs_allocation a, ushort3 val, uint32_t x); | 添加于 API 级别 22 |
| void rsAllocationVStoreX_ushort3(rs_allocation a, ushort3 val, uint32_t x, uint32_t y); | 添加于 API 级别 22 |
| void rsAllocationVStoreX_ushort3(rs_allocation a, ushort3 val, uint32_t x, uint32_t y, uint32_t z); | 添加于 API 级别 22 |
| void rsAllocationVStoreX_ushort4(rs_allocation a, ushort4 val, uint32_t x); | 添加于 API 级别 22 |
| void rsAllocationVStoreX_ushort4(rs_allocation a, ushort4 val, uint32_t x, uint32_t y); | 添加于 API 级别 22 |
| void rsAllocationVStoreX_ushort4(rs_allocation a, ushort4 val, uint32_t x, uint32_t y, uint32_t z); | 添加于 API 级别 22 |
参数
| a | 要存储数据的分配。 |
|---|---|
| val | 要存储的值。 |
| x | 要复制到的第一个单元格在分配中的 X 偏移。 |
| y | 要复制到的第一个单元格在分配中的 Y 偏移。 |
| z | 要复制到的第一个单元格在分配中的 Z 偏移。 |
此函数将向量的条目存储到分配的连续单元格中。它假设分配包含标量。
名称中的“X”表示通过增加 X 索引来存储连续值。目前没有函数可以存储递增其他维度的连续值。请改为使用多个 rsSetElementAt() 调用。
例如,当调用 rsAllocationVStoreX_int3(a, v, 20, 30) 时,v.x 存储在 a[20, 30],v.y 存储在 a[21, 30],v.z 存储在 a[22, 30]。
存储到三维分配中时,请使用 x, y, z 变体。类似地,二维分配使用 x, y 变体,一维分配使用 x 变体。
为了提高效率,此函数不验证输入。尝试封装 X 索引、超出分配大小或使用与分配维度不兼容的索引会导致未定义的结果。
另请参阅 rsAllocationVLoadX()。
rsGetElementAt : 从分配中返回一个单元格
| char rsGetElementAt_char(rs_allocation a, uint32_t x); | |
| char rsGetElementAt_char(rs_allocation a, uint32_t x, uint32_t y); | |
| char rsGetElementAt_char(rs_allocation a, uint32_t x, uint32_t y, uint32_t z); | |
| char2 rsGetElementAt_char2(rs_allocation a, uint32_t x); | |
| char2 rsGetElementAt_char2(rs_allocation a, uint32_t x, uint32_t y); | |
| char2 rsGetElementAt_char2(rs_allocation a, uint32_t x, uint32_t y, uint32_t z); | |
| char3 rsGetElementAt_char3(rs_allocation a, uint32_t x); | |
| char3 rsGetElementAt_char3(rs_allocation a, uint32_t x, uint32_t y); | |
| char3 rsGetElementAt_char3(rs_allocation a, uint32_t x, uint32_t y, uint32_t z); | |
| char4 rsGetElementAt_char4(rs_allocation a, uint32_t x); | |
| char4 rsGetElementAt_char4(rs_allocation a, uint32_t x, uint32_t y); | |
| char4 rsGetElementAt_char4(rs_allocation a, uint32_t x, uint32_t y, uint32_t z); | |
| const void* rsGetElementAt(rs_allocation a, uint32_t x); | |
| const void* rsGetElementAt(rs_allocation a, uint32_t x, uint32_t y); | |
| const void* rsGetElementAt(rs_allocation a, uint32_t x, uint32_t y, uint32_t z); | |
| double rsGetElementAt_double(rs_allocation a, uint32_t x); | |
| double rsGetElementAt_double(rs_allocation a, uint32_t x, uint32_t y); | |
| double rsGetElementAt_double(rs_allocation a, uint32_t x, uint32_t y, uint32_t z); | |
| double2 rsGetElementAt_double2(rs_allocation a, uint32_t x); | |
| double2 rsGetElementAt_double2(rs_allocation a, uint32_t x, uint32_t y); | |
| double2 rsGetElementAt_double2(rs_allocation a, uint32_t x, uint32_t y, uint32_t z); | |
| double3 rsGetElementAt_double3(rs_allocation a, uint32_t x); | |
| double3 rsGetElementAt_double3(rs_allocation a, uint32_t x, uint32_t y); | |
| double3 rsGetElementAt_double3(rs_allocation a, uint32_t x, uint32_t y, uint32_t z); | |
| double4 rsGetElementAt_double4(rs_allocation a, uint32_t x); | |
| double4 rsGetElementAt_double4(rs_allocation a, uint32_t x, uint32_t y); | |
| double4 rsGetElementAt_double4(rs_allocation a, uint32_t x, uint32_t y, uint32_t z); | |
| float rsGetElementAt_float(rs_allocation a, uint32_t x); | |
| float rsGetElementAt_float(rs_allocation a, uint32_t x, uint32_t y); | |
| float rsGetElementAt_float(rs_allocation a, uint32_t x, uint32_t y, uint32_t z); | |
| float2 rsGetElementAt_float2(rs_allocation a, uint32_t x); | |
| float2 rsGetElementAt_float2(rs_allocation a, uint32_t x, uint32_t y); | |
| float2 rsGetElementAt_float2(rs_allocation a, uint32_t x, uint32_t y, uint32_t z); | |
| float3 rsGetElementAt_float3(rs_allocation a, uint32_t x); | |
| float3 rsGetElementAt_float3(rs_allocation a, uint32_t x, uint32_t y); | |
| float3 rsGetElementAt_float3(rs_allocation a, uint32_t x, uint32_t y, uint32_t z); | |
| float4 rsGetElementAt_float4(rs_allocation a, uint32_t x); | |
| float4 rsGetElementAt_float4(rs_allocation a, uint32_t x, uint32_t y); | |
| float4 rsGetElementAt_float4(rs_allocation a, uint32_t x, uint32_t y, uint32_t z); | |
| half rsGetElementAt_half(rs_allocation a, uint32_t x); | 添加于 API level 23 |
| half rsGetElementAt_half(rs_allocation a, uint32_t x, uint32_t y); | 添加于 API level 23 |
| half rsGetElementAt_half(rs_allocation a, uint32_t x, uint32_t y, uint32_t z); | 添加于 API level 23 |
| half2 rsGetElementAt_half2(rs_allocation a, uint32_t x); | 添加于 API level 23 |
| half2 rsGetElementAt_half2(rs_allocation a, uint32_t x, uint32_t y); | 添加于 API level 23 |
| half2 rsGetElementAt_half2(rs_allocation a, uint32_t x, uint32_t y, uint32_t z); | 添加于 API level 23 |
| half3 rsGetElementAt_half3(rs_allocation a, uint32_t x); | 添加于 API level 23 |
| half3 rsGetElementAt_half3(rs_allocation a, uint32_t x, uint32_t y); | 添加于 API level 23 |
| half3 rsGetElementAt_half3(rs_allocation a, uint32_t x, uint32_t y, uint32_t z); | 添加于 API level 23 |
| half4 rsGetElementAt_half4(rs_allocation a, uint32_t x); | 添加于 API level 23 |
| half4 rsGetElementAt_half4(rs_allocation a, uint32_t x, uint32_t y); | 添加于 API level 23 |
| half4 rsGetElementAt_half4(rs_allocation a, uint32_t x, uint32_t y, uint32_t z); | 添加于 API level 23 |
| int rsGetElementAt_int(rs_allocation a, uint32_t x); | |
| int rsGetElementAt_int(rs_allocation a, uint32_t x, uint32_t y); | |
| int rsGetElementAt_int(rs_allocation a, uint32_t x, uint32_t y, uint32_t z); | |
| int2 rsGetElementAt_int2(rs_allocation a, uint32_t x); | |
| int2 rsGetElementAt_int2(rs_allocation a, uint32_t x, uint32_t y); | |
| int2 rsGetElementAt_int2(rs_allocation a, uint32_t x, uint32_t y, uint32_t z); | |
| int3 rsGetElementAt_int3(rs_allocation a, uint32_t x); | |
| int3 rsGetElementAt_int3(rs_allocation a, uint32_t x, uint32_t y); | |
| int3 rsGetElementAt_int3(rs_allocation a, uint32_t x, uint32_t y, uint32_t z); | |
| int4 rsGetElementAt_int4(rs_allocation a, uint32_t x); | |
| int4 rsGetElementAt_int4(rs_allocation a, uint32_t x, uint32_t y); | |
| int4 rsGetElementAt_int4(rs_allocation a, uint32_t x, uint32_t y, uint32_t z); | |
| long rsGetElementAt_long(rs_allocation a, uint32_t x); | |
| long rsGetElementAt_long(rs_allocation a, uint32_t x, uint32_t y); | |
| long rsGetElementAt_long(rs_allocation a, uint32_t x, uint32_t y, uint32_t z); | |
| long2 rsGetElementAt_long2(rs_allocation a, uint32_t x); | |
| long2 rsGetElementAt_long2(rs_allocation a, uint32_t x, uint32_t y); | |
| long2 rsGetElementAt_long2(rs_allocation a, uint32_t x, uint32_t y, uint32_t z); | |
| long3 rsGetElementAt_long3(rs_allocation a, uint32_t x); | |
| long3 rsGetElementAt_long3(rs_allocation a, uint32_t x, uint32_t y); | |
| long3 rsGetElementAt_long3(rs_allocation a, uint32_t x, uint32_t y, uint32_t z); | |
| long4 rsGetElementAt_long4(rs_allocation a, uint32_t x); | |
| long4 rsGetElementAt_long4(rs_allocation a, uint32_t x, uint32_t y); | |
| long4 rsGetElementAt_long4(rs_allocation a, uint32_t x, uint32_t y, uint32_t z); | |
| short rsGetElementAt_short(rs_allocation a, uint32_t x); | |
| short rsGetElementAt_short(rs_allocation a, uint32_t x, uint32_t y); | |
| short rsGetElementAt_short(rs_allocation a, uint32_t x, uint32_t y, uint32_t z); | |
| short2 rsGetElementAt_short2(rs_allocation a, uint32_t x); | |
| short2 rsGetElementAt_short2(rs_allocation a, uint32_t x, uint32_t y); | |
| short2 rsGetElementAt_short2(rs_allocation a, uint32_t x, uint32_t y, uint32_t z); | |
| short3 rsGetElementAt_short3(rs_allocation a, uint32_t x); | |
| short3 rsGetElementAt_short3(rs_allocation a, uint32_t x, uint32_t y); | |
| short3 rsGetElementAt_short3(rs_allocation a, uint32_t x, uint32_t y, uint32_t z); | |
| short4 rsGetElementAt_short4(rs_allocation a, uint32_t x); | |
| short4 rsGetElementAt_short4(rs_allocation a, uint32_t x, uint32_t y); | |
| short4 rsGetElementAt_short4(rs_allocation a, uint32_t x, uint32_t y, uint32_t z); | |
| uchar rsGetElementAt_uchar(rs_allocation a, uint32_t x); | |
| uchar rsGetElementAt_uchar(rs_allocation a, uint32_t x, uint32_t y); | |
| uchar rsGetElementAt_uchar(rs_allocation a, uint32_t x, uint32_t y, uint32_t z); | |
| uchar2 rsGetElementAt_uchar2(rs_allocation a, uint32_t x); | |
| uchar2 rsGetElementAt_uchar2(rs_allocation a, uint32_t x, uint32_t y); | |
| uchar2 rsGetElementAt_uchar2(rs_allocation a, uint32_t x, uint32_t y, uint32_t z); | |
| uchar3 rsGetElementAt_uchar3(rs_allocation a, uint32_t x); | |
| uchar3 rsGetElementAt_uchar3(rs_allocation a, uint32_t x, uint32_t y); | |
| uchar3 rsGetElementAt_uchar3(rs_allocation a, uint32_t x, uint32_t y, uint32_t z); | |
| uchar4 rsGetElementAt_uchar4(rs_allocation a, uint32_t x); | |
| uchar4 rsGetElementAt_uchar4(rs_allocation a, uint32_t x, uint32_t y); | |
| uchar4 rsGetElementAt_uchar4(rs_allocation a, uint32_t x, uint32_t y, uint32_t z); | |
| uint rsGetElementAt_uint(rs_allocation a, uint32_t x); | |
| uint rsGetElementAt_uint(rs_allocation a, uint32_t x, uint32_t y); | |
| uint rsGetElementAt_uint(rs_allocation a, uint32_t x, uint32_t y, uint32_t z); | |
| uint2 rsGetElementAt_uint2(rs_allocation a, uint32_t x); | |
| uint2 rsGetElementAt_uint2(rs_allocation a, uint32_t x, uint32_t y); | |
| uint2 rsGetElementAt_uint2(rs_allocation a, uint32_t x, uint32_t y, uint32_t z); | |
| uint3 rsGetElementAt_uint3(rs_allocation a, uint32_t x); | |
| uint3 rsGetElementAt_uint3(rs_allocation a, uint32_t x, uint32_t y); | |
| uint3 rsGetElementAt_uint3(rs_allocation a, uint32_t x, uint32_t y, uint32_t z); | |
| uint4 rsGetElementAt_uint4(rs_allocation a, uint32_t x); | |
| uint4 rsGetElementAt_uint4(rs_allocation a, uint32_t x, uint32_t y); | |
| uint4 rsGetElementAt_uint4(rs_allocation a, uint32_t x, uint32_t y, uint32_t z); | |
| ulong rsGetElementAt_ulong(rs_allocation a, uint32_t x); | |
| ulong rsGetElementAt_ulong(rs_allocation a, uint32_t x, uint32_t y); | |
| ulong rsGetElementAt_ulong(rs_allocation a, uint32_t x, uint32_t y, uint32_t z); | |
| ulong2 rsGetElementAt_ulong2(rs_allocation a, uint32_t x); | |
| ulong2 rsGetElementAt_ulong2(rs_allocation a, uint32_t x, uint32_t y); | |
| ulong2 rsGetElementAt_ulong2(rs_allocation a, uint32_t x, uint32_t y, uint32_t z); | |
| ulong3 rsGetElementAt_ulong3(rs_allocation a, uint32_t x); | |
| ulong3 rsGetElementAt_ulong3(rs_allocation a, uint32_t x, uint32_t y); | |
| ulong3 rsGetElementAt_ulong3(rs_allocation a, uint32_t x, uint32_t y, uint32_t z); | |
| ulong4 rsGetElementAt_ulong4(rs_allocation a, uint32_t x); | |
| ulong4 rsGetElementAt_ulong4(rs_allocation a, uint32_t x, uint32_t y); | |
| ulong4 rsGetElementAt_ulong4(rs_allocation a, uint32_t x, uint32_t y, uint32_t z); | |
| ushort rsGetElementAt_ushort(rs_allocation a, uint32_t x); | |
| ushort rsGetElementAt_ushort(rs_allocation a, uint32_t x, uint32_t y); | |
| ushort rsGetElementAt_ushort(rs_allocation a, uint32_t x, uint32_t y, uint32_t z); | |
| ushort2 rsGetElementAt_ushort2(rs_allocation a, uint32_t x); | |
| ushort2 rsGetElementAt_ushort2(rs_allocation a, uint32_t x, uint32_t y); | |
| ushort2 rsGetElementAt_ushort2(rs_allocation a, uint32_t x, uint32_t y, uint32_t z); | |
| ushort3 rsGetElementAt_ushort3(rs_allocation a, uint32_t x); | |
| ushort3 rsGetElementAt_ushort3(rs_allocation a, uint32_t x, uint32_t y); | |
| ushort3 rsGetElementAt_ushort3(rs_allocation a, uint32_t x, uint32_t y, uint32_t z); | |
| ushort4 rsGetElementAt_ushort4(rs_allocation a, uint32_t x); | |
| ushort4 rsGetElementAt_ushort4(rs_allocation a, uint32_t x, uint32_t y); | |
| ushort4 rsGetElementAt_ushort4(rs_allocation a, uint32_t x, uint32_t y, uint32_t z); |
此函数从分配中提取单个单元格。
从三维分配中检索时,请使用包含 x、y、z 的变体。类似地,对于二维分配,请使用包含 x、y 的变体;对于一维分配,请使用 x。
此函数有两种样式。一种使用 void* 返回值的地址,另一种返回实际值,例如 rsGetElementAt() 与 rsGetElementAt_int4()。对于原始类型,请始终使用后一种样式,因为它更高效。
rsGetElementAtYuv_uchar_U : 获取 YUV 分配的 U 分量
| uchar rsGetElementAtYuv_uchar_U(rs_allocation a, uint32_t x, uint32_t y); | 添加于 API level 18 |
从 YUV 的二维分配中提取单个 YUV 值的 U 分量。
在分配内部,Y、U 和 V 分量可以存储在不同的平面中,并具有不同的分辨率。此处提供的 x、y 坐标位于 Y 平面的维度中。
请参阅 rsGetElementAtYuv_uchar_Y()。
rsGetElementAtYuv_uchar_V : 获取 YUV 分配的 V 分量
| uchar rsGetElementAtYuv_uchar_V(rs_allocation a, uint32_t x, uint32_t y); | 添加于 API level 18 |
从 YUV 的二维分配中提取单个 YUV 值的 V 分量。
在分配内部,Y、U 和 V 分量可以存储在不同的平面中,并具有不同的分辨率。此处提供的 x、y 坐标位于 Y 平面的维度中。
请参阅 rsGetElementAtYuv_uchar_Y()。
rsGetElementAtYuv_uchar_Y : 获取 YUV 分配的 Y 分量
| uchar rsGetElementAtYuv_uchar_Y(rs_allocation a, uint32_t x, uint32_t y); | 添加于 API level 18 |
从 YUV 的二维分配中提取单个 YUV 值的 Y 分量。
在分配内部,Y、U 和 V 分量可以存储在不同的平面中,并具有不同的分辨率。此处提供的 x、y 坐标位于 Y 平面的维度中。
请参阅 rsGetElementAtYuv_uchar_U() 和 rsGetElementAtYuv_uchar_V()。
rsSample : 从纹理分配中采样一个值
| float4 rsSample(rs_allocation a, rs_sampler s, float location); | 添加于 API level 16 |
| float4 rsSample(rs_allocation a, rs_sampler s, float location, float lod); | 添加于 API level 16 |
| float4 rsSample(rs_allocation a, rs_sampler s, float2 location); | 添加于 API level 16 |
| float4 rsSample(rs_allocation a, rs_sampler s, float2 location, float lod); | 添加于 API level 16 |
参数
| a | 要采样的分配。 |
|---|---|
| s | 采样器状态。 |
| location | 要采样的位置。 |
| lod | 要采样的 mip 级别,对于分数 mip 级别,如果使用 RS_SAMPLER_LINEAR_MIP_LINEAR,将进行插值。 |
按照采样器描述的方式从纹理分配中获取一个值。
如果您的分配是一维的,请使用 location 参数类型为 float 的变体。对于二维,请使用 float2 变体。
有关更多详细信息,请参阅 android.renderscript.Sampler。
rsSetElementAt : 设置分配的单元格
| void rsSetElementAt(rs_allocation a, void* ptr, uint32_t x); | 添加于 API level 18 |
| void rsSetElementAt(rs_allocation a, void* ptr, uint32_t x, uint32_t y); | 添加于 API level 18 |
| void rsSetElementAt_char(rs_allocation a, char val, uint32_t x); | 添加于 API level 18 |
| void rsSetElementAt_char(rs_allocation a, char val, uint32_t x, uint32_t y); | 添加于 API level 18 |
| void rsSetElementAt_char(rs_allocation a, char val, uint32_t x, uint32_t y, uint32_t z); | 添加于 API level 18 |
| void rsSetElementAt_char2(rs_allocation a, char2 val, uint32_t x); | 添加于 API level 18 |
| void rsSetElementAt_char2(rs_allocation a, char2 val, uint32_t x, uint32_t y); | 添加于 API level 18 |
| void rsSetElementAt_char2(rs_allocation a, char2 val, uint32_t x, uint32_t y, uint32_t z); | 添加于 API level 18 |
| void rsSetElementAt_char3(rs_allocation a, char3 val, uint32_t x); | 添加于 API level 18 |
| void rsSetElementAt_char3(rs_allocation a, char3 val, uint32_t x, uint32_t y); | 添加于 API level 18 |
| void rsSetElementAt_char3(rs_allocation a, char3 val, uint32_t x, uint32_t y, uint32_t z); | 添加于 API level 18 |
| void rsSetElementAt_char4(rs_allocation a, char4 val, uint32_t x); | 添加于 API level 18 |
| void rsSetElementAt_char4(rs_allocation a, char4 val, uint32_t x, uint32_t y); | 添加于 API level 18 |
| void rsSetElementAt_char4(rs_allocation a, char4 val, uint32_t x, uint32_t y, uint32_t z); | 添加于 API level 18 |
| void rsSetElementAt_double(rs_allocation a, double val, uint32_t x); | 添加于 API level 18 |
| void rsSetElementAt_double(rs_allocation a, double val, uint32_t x, uint32_t y); | 添加于 API level 18 |
| void rsSetElementAt_double(rs_allocation a, double val, uint32_t x, uint32_t y, uint32_t z); | 添加于 API level 18 |
| void rsSetElementAt_double2(rs_allocation a, double2 val, uint32_t x); | 添加于 API level 18 |
| void rsSetElementAt_double2(rs_allocation a, double2 val, uint32_t x, uint32_t y); | 添加于 API level 18 |
| void rsSetElementAt_double2(rs_allocation a, double2 val, uint32_t x, uint32_t y, uint32_t z); | 添加于 API level 18 |
| void rsSetElementAt_double3(rs_allocation a, double3 val, uint32_t x); | 添加于 API level 18 |
| void rsSetElementAt_double3(rs_allocation a, double3 val, uint32_t x, uint32_t y); | 添加于 API level 18 |
| void rsSetElementAt_double3(rs_allocation a, double3 val, uint32_t x, uint32_t y, uint32_t z); | 添加于 API level 18 |
| void rsSetElementAt_double4(rs_allocation a, double4 val, uint32_t x); | 添加于 API level 18 |
| void rsSetElementAt_double4(rs_allocation a, double4 val, uint32_t x, uint32_t y); | 添加于 API level 18 |
| void rsSetElementAt_double4(rs_allocation a, double4 val, uint32_t x, uint32_t y, uint32_t z); | 添加于 API level 18 |
| void rsSetElementAt_float(rs_allocation a, float val, uint32_t x); | 添加于 API level 18 |
| void rsSetElementAt_float(rs_allocation a, float val, uint32_t x, uint32_t y); | 添加于 API level 18 |
| void rsSetElementAt_float(rs_allocation a, float val, uint32_t x, uint32_t y, uint32_t z); | 添加于 API level 18 |
| void rsSetElementAt_float2(rs_allocation a, float2 val, uint32_t x); | 添加于 API level 18 |
| void rsSetElementAt_float2(rs_allocation a, float2 val, uint32_t x, uint32_t y); | 添加于 API level 18 |
| void rsSetElementAt_float2(rs_allocation a, float2 val, uint32_t x, uint32_t y, uint32_t z); | 添加于 API level 18 |
| void rsSetElementAt_float3(rs_allocation a, float3 val, uint32_t x); | 添加于 API level 18 |
| void rsSetElementAt_float3(rs_allocation a, float3 val, uint32_t x, uint32_t y); | 添加于 API level 18 |
| void rsSetElementAt_float3(rs_allocation a, float3 val, uint32_t x, uint32_t y, uint32_t z); | 添加于 API level 18 |
| void rsSetElementAt_float4(rs_allocation a, float4 val, uint32_t x); | 添加于 API level 18 |
| void rsSetElementAt_float4(rs_allocation a, float4 val, uint32_t x, uint32_t y); | 添加于 API level 18 |
| void rsSetElementAt_float4(rs_allocation a, float4 val, uint32_t x, uint32_t y, uint32_t z); | 添加于 API level 18 |
| void rsSetElementAt_half(rs_allocation a, half val, uint32_t x); | 添加于 API level 23 |
| void rsSetElementAt_half(rs_allocation a, half val, uint32_t x, uint32_t y); | 添加于 API level 23 |
| void rsSetElementAt_half(rs_allocation a, half val, uint32_t x, uint32_t y, uint32_t z); | 添加于 API level 23 |
| void rsSetElementAt_half2(rs_allocation a, half2 val, uint32_t x); | 添加于 API level 23 |
| void rsSetElementAt_half2(rs_allocation a, half2 val, uint32_t x, uint32_t y); | 添加于 API level 23 |
| void rsSetElementAt_half2(rs_allocation a, half2 val, uint32_t x, uint32_t y, uint32_t z); | 添加于 API level 23 |
| void rsSetElementAt_half3(rs_allocation a, half3 val, uint32_t x); | 添加于 API level 23 |
| void rsSetElementAt_half3(rs_allocation a, half3 val, uint32_t x, uint32_t y); | 添加于 API level 23 |
| void rsSetElementAt_half3(rs_allocation a, half3 val, uint32_t x, uint32_t y, uint32_t z); | 添加于 API level 23 |
| void rsSetElementAt_half4(rs_allocation a, half4 val, uint32_t x); | 添加于 API level 23 |
| void rsSetElementAt_half4(rs_allocation a, half4 val, uint32_t x, uint32_t y); | 添加于 API level 23 |
| void rsSetElementAt_half4(rs_allocation a, half4 val, uint32_t x, uint32_t y, uint32_t z); | 添加于 API level 23 |
| void rsSetElementAt_int(rs_allocation a, int val, uint32_t x); | 添加于 API level 18 |
| void rsSetElementAt_int(rs_allocation a, int val, uint32_t x, uint32_t y); | 添加于 API level 18 |
| void rsSetElementAt_int(rs_allocation a, int val, uint32_t x, uint32_t y, uint32_t z); | 添加于 API level 18 |
| void rsSetElementAt_int2(rs_allocation a, int2 val, uint32_t x); | 添加于 API level 18 |
| void rsSetElementAt_int2(rs_allocation a, int2 val, uint32_t x, uint32_t y); | 添加于 API level 18 |
| void rsSetElementAt_int2(rs_allocation a, int2 val, uint32_t x, uint32_t y, uint32_t z); | 添加于 API level 18 |
| void rsSetElementAt_int3(rs_allocation a, int3 val, uint32_t x); | 添加于 API level 18 |
| void rsSetElementAt_int3(rs_allocation a, int3 val, uint32_t x, uint32_t y); | 添加于 API level 18 |
| void rsSetElementAt_int3(rs_allocation a, int3 val, uint32_t x, uint32_t y, uint32_t z); | 添加于 API level 18 |
| void rsSetElementAt_int4(rs_allocation a, int4 val, uint32_t x); | 添加于 API level 18 |
| void rsSetElementAt_int4(rs_allocation a, int4 val, uint32_t x, uint32_t y); | 添加于 API level 18 |
| void rsSetElementAt_int4(rs_allocation a, int4 val, uint32_t x, uint32_t y, uint32_t z); | 添加于 API level 18 |
| void rsSetElementAt_long(rs_allocation a, long val, uint32_t x); | 添加于 API level 18 |
| void rsSetElementAt_long(rs_allocation a, long val, uint32_t x, uint32_t y); | 添加于 API level 18 |
| void rsSetElementAt_long(rs_allocation a, long val, uint32_t x, uint32_t y, uint32_t z); | 添加于 API level 18 |
| void rsSetElementAt_long2(rs_allocation a, long2 val, uint32_t x); | 添加于 API level 18 |
| void rsSetElementAt_long2(rs_allocation a, long2 val, uint32_t x, uint32_t y); | 添加于 API level 18 |
| void rsSetElementAt_long2(rs_allocation a, long2 val, uint32_t x, uint32_t y, uint32_t z); | 添加于 API level 18 |
| void rsSetElementAt_long3(rs_allocation a, long3 val, uint32_t x); | 添加于 API level 18 |
| void rsSetElementAt_long3(rs_allocation a, long3 val, uint32_t x, uint32_t y); | 添加于 API level 18 |
| void rsSetElementAt_long3(rs_allocation a, long3 val, uint32_t x, uint32_t y, uint32_t z); | 添加于 API level 18 |
| void rsSetElementAt_long4(rs_allocation a, long4 val, uint32_t x); | 添加于 API level 18 |
| void rsSetElementAt_long4(rs_allocation a, long4 val, uint32_t x, uint32_t y); | 添加于 API level 18 |
| void rsSetElementAt_long4(rs_allocation a, long4 val, uint32_t x, uint32_t y, uint32_t z); | 添加于 API level 18 |
| void rsSetElementAt_short(rs_allocation a, short val, uint32_t x); | 添加于 API level 18 |
| void rsSetElementAt_short(rs_allocation a, short val, uint32_t x, uint32_t y); | 添加于 API level 18 |
| void rsSetElementAt_short(rs_allocation a, short val, uint32_t x, uint32_t y, uint32_t z); | 添加于 API level 18 |
| void rsSetElementAt_short2(rs_allocation a, short2 val, uint32_t x); | 添加于 API level 18 |
| void rsSetElementAt_short2(rs_allocation a, short2 val, uint32_t x, uint32_t y); | 添加于 API level 18 |
| void rsSetElementAt_short2(rs_allocation a, short2 val, uint32_t x, uint32_t y, uint32_t z); | 添加于 API level 18 |
| void rsSetElementAt_short3(rs_allocation a, short3 val, uint32_t x); | 添加于 API level 18 |
| void rsSetElementAt_short3(rs_allocation a, short3 val, uint32_t x, uint32_t y); | 添加于 API level 18 |
| void rsSetElementAt_short3(rs_allocation a, short3 val, uint32_t x, uint32_t y, uint32_t z); | 添加于 API level 18 |
| void rsSetElementAt_short4(rs_allocation a, short4 val, uint32_t x); | 添加于 API level 18 |
| void rsSetElementAt_short4(rs_allocation a, short4 val, uint32_t x, uint32_t y); | 添加于 API level 18 |
| void rsSetElementAt_short4(rs_allocation a, short4 val, uint32_t x, uint32_t y, uint32_t z); | 添加于 API level 18 |
| void rsSetElementAt_uchar(rs_allocation a, uchar val, uint32_t x); | 添加于 API level 18 |
| void rsSetElementAt_uchar(rs_allocation a, uchar val, uint32_t x, uint32_t y); | 添加于 API level 18 |
| void rsSetElementAt_uchar(rs_allocation a, uchar val, uint32_t x, uint32_t y, uint32_t z); | 添加于 API level 18 |
| void rsSetElementAt_uchar2(rs_allocation a, uchar2 val, uint32_t x); | 添加于 API level 18 |
| void rsSetElementAt_uchar2(rs_allocation a, uchar2 val, uint32_t x, uint32_t y); | 添加于 API level 18 |
| void rsSetElementAt_uchar2(rs_allocation a, uchar2 val, uint32_t x, uint32_t y, uint32_t z); | 添加于 API level 18 |
| void rsSetElementAt_uchar3(rs_allocation a, uchar3 val, uint32_t x); | 添加于 API level 18 |
| void rsSetElementAt_uchar3(rs_allocation a, uchar3 val, uint32_t x, uint32_t y); | 添加于 API level 18 |
| void rsSetElementAt_uchar3(rs_allocation a, uchar3 val, uint32_t x, uint32_t y, uint32_t z); | 添加于 API level 18 |
| void rsSetElementAt_uchar4(rs_allocation a, uchar4 val, uint32_t x); | 添加于 API level 18 |
| void rsSetElementAt_uchar4(rs_allocation a, uchar4 val, uint32_t x, uint32_t y); | 添加于 API level 18 |
| void rsSetElementAt_uchar4(rs_allocation a, uchar4 val, uint32_t x, uint32_t y, uint32_t z); | 添加于 API level 18 |
| void rsSetElementAt_uint(rs_allocation a, uint val, uint32_t x); | 添加于 API level 18 |
| void rsSetElementAt_uint(rs_allocation a, uint val, uint32_t x, uint32_t y); | 添加于 API level 18 |
| void rsSetElementAt_uint(rs_allocation a, uint val, uint32_t x, uint32_t y, uint32_t z); | 添加于 API level 18 |
| void rsSetElementAt_uint2(rs_allocation a, uint2 val, uint32_t x); | 添加于 API level 18 |
| void rsSetElementAt_uint2(rs_allocation a, uint2 val, uint32_t x, uint32_t y); | 添加于 API level 18 |
| void rsSetElementAt_uint2(rs_allocation a, uint2 val, uint32_t x, uint32_t y, uint32_t z); | 添加于 API level 18 |
| void rsSetElementAt_uint3(rs_allocation a, uint3 val, uint32_t x); | 添加于 API level 18 |
| void rsSetElementAt_uint3(rs_allocation a, uint3 val, uint32_t x, uint32_t y); | 添加于 API level 18 |
| void rsSetElementAt_uint3(rs_allocation a, uint3 val, uint32_t x, uint32_t y, uint32_t z); | 添加于 API level 18 |
| void rsSetElementAt_uint4(rs_allocation a, uint4 val, uint32_t x); | 添加于 API level 18 |
| void rsSetElementAt_uint4(rs_allocation a, uint4 val, uint32_t x, uint32_t y); | 添加于 API level 18 |
| void rsSetElementAt_uint4(rs_allocation a, uint4 val, uint32_t x, uint32_t y, uint32_t z); | 添加于 API level 18 |
| void rsSetElementAt_ulong(rs_allocation a, ulong val, uint32_t x); | 添加于 API level 18 |
| void rsSetElementAt_ulong(rs_allocation a, ulong val, uint32_t x, uint32_t y); | 添加于 API level 18 |
| void rsSetElementAt_ulong(rs_allocation a, ulong val, uint32_t x, uint32_t y, uint32_t z); | 添加于 API level 18 |
| void rsSetElementAt_ulong2(rs_allocation a, ulong2 val, uint32_t x); | 添加于 API level 18 |
| void rsSetElementAt_ulong2(rs_allocation a, ulong2 val, uint32_t x, uint32_t y); | 添加于 API level 18 |
| void rsSetElementAt_ulong2(rs_allocation a, ulong2 val, uint32_t x, uint32_t y, uint32_t z); | 添加于 API level 18 |
| void rsSetElementAt_ulong3(rs_allocation a, ulong3 val, uint32_t x); | 添加于 API level 18 |
| void rsSetElementAt_ulong3(rs_allocation a, ulong3 val, uint32_t x, uint32_t y); | 添加于 API level 18 |
| void rsSetElementAt_ulong3(rs_allocation a, ulong3 val, uint32_t x, uint32_t y, uint32_t z); | 添加于 API level 18 |
| void rsSetElementAt_ulong4(rs_allocation a, ulong4 val, uint32_t x); | 添加于 API level 18 |
| void rsSetElementAt_ulong4(rs_allocation a, ulong4 val, uint32_t x, uint32_t y); | 添加于 API level 18 |
| void rsSetElementAt_ulong4(rs_allocation a, ulong4 val, uint32_t x, uint32_t y, uint32_t z); | 添加于 API level 18 |
| void rsSetElementAt_ushort(rs_allocation a, ushort val, uint32_t x); | 添加于 API level 18 |
| void rsSetElementAt_ushort(rs_allocation a, ushort val, uint32_t x, uint32_t y); | 添加于 API level 18 |
| void rsSetElementAt_ushort(rs_allocation a, ushort val, uint32_t x, uint32_t y, uint32_t z); | 添加于 API level 18 |
| void rsSetElementAt_ushort2(rs_allocation a, ushort2 val, uint32_t x); | 添加于 API level 18 |
| void rsSetElementAt_ushort2(rs_allocation a, ushort2 val, uint32_t x, uint32_t y); | 添加于 API level 18 |
| void rsSetElementAt_ushort2(rs_allocation a, ushort2 val, uint32_t x, uint32_t y, uint32_t z); | 添加于 API level 18 |
| void rsSetElementAt_ushort3(rs_allocation a, ushort3 val, uint32_t x); | 添加于 API level 18 |
| void rsSetElementAt_ushort3(rs_allocation a, ushort3 val, uint32_t x, uint32_t y); | 添加于 API level 18 |
| void rsSetElementAt_ushort3(rs_allocation a, ushort3 val, uint32_t x, uint32_t y, uint32_t z); | 添加于 API level 18 |
| void rsSetElementAt_ushort4(rs_allocation a, ushort4 val, uint32_t x); | 添加于 API level 18 |
| void rsSetElementAt_ushort4(rs_allocation a, ushort4 val, uint32_t x, uint32_t y); | 添加于 API level 18 |
| void rsSetElementAt_ushort4(rs_allocation a, ushort4 val, uint32_t x, uint32_t y, uint32_t z); | 添加于 API level 18 |
此函数将值存储到分配中的单个单元格中。
存储到三维分配中时,请使用 x, y, z 变体。类似地,二维分配使用 x, y 变体,一维分配使用 x 变体。
此函数有两种调用方式。一种使用 void* 传递要存储的值,另一种将实际值作为参数,例如 rsSetElementAt() 与 rsSetElementAt_int4()。对于基本类型,始终使用后者,因为它更高效。
另请参阅 rsGetElementAt()。