RenderScript 分配创建函数

概览

以下函数可用于从脚本创建 Allocation。

这些函数可以通过可调用函数直接或间接调用。如果某些控制流路径可能导致从 RenderScript 内核函数调用这些函数,则会生成编译器错误。

总结

函数
rsCreateAllocation 创建给定类型的 rs_allocation 对象。
rsCreateElement 创建指定数据类型的 rs_element 对象
rsCreatePixelElement 创建具有指定数据类型和数据类型的 rs_element 对象
rsCreateType 使用指定的元素和形状属性创建 rs_type 对象
rsCreateVectorElement 创建具有指定数据类型和矢量宽度的 rs_element 对象

函数

rsCreateAllocation :创建给定类型的 rs_allocation 对象。

rs_allocation rsCreateAllocation(rs_type type); API 级别 24 中引入
rs_allocation rsCreateAllocation(rs_type type, rs_allocation_mipmap_control mipmap, uint32_t usages, void* ptr); API 级别 24 中引入
rs_allocation rsCreateAllocation(rs_type type, uint32_t usage); API 级别 24 中引入
rs_allocation rsCreateAllocation_char(uint32_t dimX); API 级别 24 中引入
rs_allocation rsCreateAllocation_char(uint32_t dimX, uint32_t dimY); API 级别 24 中引入
rs_allocation rsCreateAllocation_char(uint32_t dimX, uint32_t dimY, uint32_t dimZ); API 级别 24 中引入
rs_allocation rsCreateAllocation_char2(uint32_t dimX); API 级别 24 中引入
rs_allocation rsCreateAllocation_char2(uint32_t dimX, uint32_t dimY); API 级别 24 中引入
rs_allocation rsCreateAllocation_char2(uint32_t dimX, uint32_t dimY, uint32_t dimZ); API 级别 24 中引入
rs_allocation rsCreateAllocation_char3(uint32_t dimX); API 级别 24 中引入
rs_allocation rsCreateAllocation_char3(uint32_t dimX, uint32_t dimY); API 级别 24 中引入
rs_allocation rsCreateAllocation_char3(uint32_t dimX, uint32_t dimY, uint32_t dimZ); API 级别 24 中引入
rs_allocation rsCreateAllocation_char4(uint32_t dimX); API 级别 24 中引入
rs_allocation rsCreateAllocation_char4(uint32_t dimX, uint32_t dimY); API 级别 24 中引入
rs_allocation rsCreateAllocation_char4(uint32_t dimX, uint32_t dimY, uint32_t dimZ); API 级别 24 中引入
rs_allocation rsCreateAllocation_double(uint32_t dimX); API 级别 24 中引入
rs_allocation rsCreateAllocation_double(uint32_t dimX, uint32_t dimY); API 级别 24 中引入
rs_allocation rsCreateAllocation_double(uint32_t dimX, uint32_t dimY, uint32_t dimZ); API 级别 24 中引入
rs_allocation rsCreateAllocation_double2(uint32_t dimX); API 级别 24 中引入
rs_allocation rsCreateAllocation_double2(uint32_t dimX, uint32_t dimY); API 级别 24 中引入
rs_allocation rsCreateAllocation_double2(uint32_t dimX, uint32_t dimY, uint32_t dimZ); API 级别 24 中引入
rs_allocation rsCreateAllocation_double3(uint32_t dimX); API 级别 24 中引入
rs_allocation rsCreateAllocation_double3(uint32_t dimX, uint32_t dimY); API 级别 24 中引入
rs_allocation rsCreateAllocation_double3(uint32_t dimX, uint32_t dimY, uint32_t dimZ); API 级别 24 中引入
rs_allocation rsCreateAllocation_double4(uint32_t dimX); API 级别 24 中引入
rs_allocation rsCreateAllocation_double4(uint32_t dimX, uint32_t dimY); API 级别 24 中引入
rs_allocation rsCreateAllocation_double4(uint32_t dimX, uint32_t dimY, uint32_t dimZ); API 级别 24 中引入
rs_allocation rsCreateAllocation_float(uint32_t dimX); API 级别 24 中引入
rs_allocation rsCreateAllocation_float(uint32_t dimX, uint32_t dimY); API 级别 24 中引入
rs_allocation rsCreateAllocation_float(uint32_t dimX, uint32_t dimY, uint32_t dimZ); API 级别 24 中引入
rs_allocation rsCreateAllocation_float2(uint32_t dimX); API 级别 24 中引入
rs_allocation rsCreateAllocation_float2(uint32_t dimX, uint32_t dimY); API 级别 24 中引入
rs_allocation rsCreateAllocation_float2(uint32_t dimX, uint32_t dimY, uint32_t dimZ); API 级别 24 中引入
rs_allocation rsCreateAllocation_float3(uint32_t dimX); API 级别 24 中引入
rs_allocation rsCreateAllocation_float3(uint32_t dimX, uint32_t dimY); API 级别 24 中引入
rs_allocation rsCreateAllocation_float3(uint32_t dimX, uint32_t dimY, uint32_t dimZ); API 级别 24 中引入
rs_allocation rsCreateAllocation_float4(uint32_t dimX); API 级别 24 中引入
rs_allocation rsCreateAllocation_float4(uint32_t dimX, uint32_t dimY); API 级别 24 中引入
rs_allocation rsCreateAllocation_float4(uint32_t dimX, uint32_t dimY, uint32_t dimZ); API 级别 24 中引入
rs_allocation rsCreateAllocation_half(uint32_t dimX); API 级别 24 中引入
rs_allocation rsCreateAllocation_half(uint32_t dimX, uint32_t dimY); API 级别 24 中引入
rs_allocation rsCreateAllocation_half(uint32_t dimX, uint32_t dimY, uint32_t dimZ); API 级别 24 中引入
rs_allocation rsCreateAllocation_half2(uint32_t dimX); API 级别 24 中引入
rs_allocation rsCreateAllocation_half2(uint32_t dimX, uint32_t dimY); API 级别 24 中引入
rs_allocation rsCreateAllocation_half2(uint32_t dimX, uint32_t dimY, uint32_t dimZ); API 级别 24 中引入
rs_allocation rsCreateAllocation_half3(uint32_t dimX); API 级别 24 中引入
rs_allocation rsCreateAllocation_half3(uint32_t dimX, uint32_t dimY); API 级别 24 中引入
rs_allocation rsCreateAllocation_half3(uint32_t dimX, uint32_t dimY, uint32_t dimZ); API 级别 24 中引入
rs_allocation rsCreateAllocation_half4(uint32_t dimX); API 级别 24 中引入
rs_allocation rsCreateAllocation_half4(uint32_t dimX, uint32_t dimY); API 级别 24 中引入
rs_allocation rsCreateAllocation_half4(uint32_t dimX, uint32_t dimY, uint32_t dimZ); API 级别 24 中引入
rs_allocation rsCreateAllocation_int(uint32_t dimX); API 级别 24 中引入
rs_allocation rsCreateAllocation_int(uint32_t dimX, uint32_t dimY); API 级别 24 中引入
rs_allocation rsCreateAllocation_int(uint32_t dimX, uint32_t dimY, uint32_t dimZ); API 级别 24 中引入
rs_allocation rsCreateAllocation_int2(uint32_t dimX); API 级别 24 中引入
rs_allocation rsCreateAllocation_int2(uint32_t dimX, uint32_t dimY); API 级别 24 中引入
rs_allocation rsCreateAllocation_int2(uint32_t dimX, uint32_t dimY, uint32_t dimZ); API 级别 24 中引入
rs_allocation rsCreateAllocation_int3(uint32_t dimX); API 级别 24 中引入
rs_allocation rsCreateAllocation_int3(uint32_t dimX, uint32_t dimY); API 级别 24 中引入
rs_allocation rsCreateAllocation_int3(uint32_t dimX, uint32_t dimY, uint32_t dimZ); API 级别 24 中引入
rs_allocation rsCreateAllocation_int4(uint32_t dimX); API 级别 24 中引入
rs_allocation rsCreateAllocation_int4(uint32_t dimX, uint32_t dimY); API 级别 24 中引入
rs_allocation rsCreateAllocation_int4(uint32_t dimX, uint32_t dimY, uint32_t dimZ); API 级别 24 中引入
rs_allocation rsCreateAllocation_long(uint32_t dimX); API 级别 24 中引入
rs_allocation rsCreateAllocation_long(uint32_t dimX, uint32_t dimY); API 级别 24 中引入
rs_allocation rsCreateAllocation_long(uint32_t dimX, uint32_t dimY, uint32_t dimZ); API 级别 24 中引入
rs_allocation rsCreateAllocation_long2(uint32_t dimX); API 级别 24 中引入
rs_allocation rsCreateAllocation_long2(uint32_t dimX, uint32_t dimY); API 级别 24 中引入
rs_allocation rsCreateAllocation_long2(uint32_t dimX, uint32_t dimY, uint32_t dimZ); API 级别 24 中引入
rs_allocation rsCreateAllocation_long3(uint32_t dimX); API 级别 24 中引入
rs_allocation rsCreateAllocation_long3(uint32_t dimX, uint32_t dimY); API 级别 24 中引入
rs_allocation rsCreateAllocation_long3(uint32_t dimX, uint32_t dimY, uint32_t dimZ); API 级别 24 中引入
rs_allocation rsCreateAllocation_long4(uint32_t dimX); API 级别 24 中引入
rs_allocation rsCreateAllocation_long4(uint32_t dimX, uint32_t dimY); API 级别 24 中引入
rs_allocation rsCreateAllocation_long4(uint32_t dimX, uint32_t dimY, uint32_t dimZ); API 级别 24 中引入
rs_allocation rsCreateAllocation_short(uint32_t dimX); API 级别 24 中引入
rs_allocation rsCreateAllocation_short(uint32_t dimX, uint32_t dimY); API 级别 24 中引入
rs_allocation rsCreateAllocation_short(uint32_t dimX, uint32_t dimY, uint32_t dimZ); API 级别 24 中引入
rs_allocation rsCreateAllocation_short2(uint32_t dimX); API 级别 24 中引入
rs_allocation rsCreateAllocation_short2(uint32_t dimX, uint32_t dimY); API 级别 24 中引入
rs_allocation rsCreateAllocation_short2(uint32_t dimX, uint32_t dimY, uint32_t dimZ); API 级别 24 中引入
rs_allocation rsCreateAllocation_short3(uint32_t dimX); API 级别 24 中引入
rs_allocation rsCreateAllocation_short3(uint32_t dimX, uint32_t dimY); API 级别 24 中引入
rs_allocation rsCreateAllocation_short3(uint32_t dimX, uint32_t dimY, uint32_t dimZ); API 级别 24 中引入
rs_allocation rsCreateAllocation_short4(uint32_t dimX); API 级别 24 中引入
rs_allocation rsCreateAllocation_short4(uint32_t dimX, uint32_t dimY); API 级别 24 中引入
rs_allocation rsCreateAllocation_short4(uint32_t dimX, uint32_t dimY, uint32_t dimZ); API 级别 24 中引入
rs_allocation rsCreateAllocation_uchar(uint32_t dimX); API 级别 24 中引入
rs_allocation rsCreateAllocation_uchar(uint32_t dimX, uint32_t dimY); API 级别 24 中引入
rs_allocation rsCreateAllocation_uchar(uint32_t dimX, uint32_t dimY, uint32_t dimZ); API 级别 24 中引入
rs_allocation rsCreateAllocation_uchar2(uint32_t dimX); API 级别 24 中引入
rs_allocation rsCreateAllocation_uchar2(uint32_t dimX, uint32_t dimY); API 级别 24 中引入
rs_allocation rsCreateAllocation_uchar2(uint32_t dimX, uint32_t dimY, uint32_t dimZ); API 级别 24 中引入
rs_allocation rsCreateAllocation_uchar3(uint32_t dimX); API 级别 24 中引入
rs_allocation rsCreateAllocation_uchar3(uint32_t dimX, uint32_t dimY); API 级别 24 中引入
rs_allocation rsCreateAllocation_uchar3(uint32_t dimX, uint32_t dimY, uint32_t dimZ); API 级别 24 中引入
rs_allocation rsCreateAllocation_uchar4(uint32_t dimX); API 级别 24 中引入
rs_allocation rsCreateAllocation_uchar4(uint32_t dimX, uint32_t dimY); API 级别 24 中引入
rs_allocation rsCreateAllocation_uchar4(uint32_t dimX, uint32_t dimY, uint32_t dimZ); API 级别 24 中引入
rs_allocation rsCreateAllocation_uint(uint32_t dimX); API 级别 24 中引入
rs_allocation rsCreateAllocation_uint(uint32_t dimX, uint32_t dimY); API 级别 24 中引入
rs_allocation rsCreateAllocation_uint(uint32_t dimX, uint32_t dimY, uint32_t dimZ); API 级别 24 中引入
rs_allocation rsCreateAllocation_uint2(uint32_t dimX); API 级别 24 中引入
rs_allocation rsCreateAllocation_uint2(uint32_t dimX, uint32_t dimY); API 级别 24 中引入
rs_allocation rsCreateAllocation_uint2(uint32_t dimX, uint32_t dimY, uint32_t dimZ); API 级别 24 中引入
rs_allocation rsCreateAllocation_uint3(uint32_t dimX); API 级别 24 中引入
rs_allocation rsCreateAllocation_uint3(uint32_t dimX, uint32_t dimY); API 级别 24 中引入
rs_allocation rsCreateAllocation_uint3(uint32_t dimX, uint32_t dimY, uint32_t dimZ); API 级别 24 中引入
rs_allocation rsCreateAllocation_uint4(uint32_t dimX); API 级别 24 中引入
rs_allocation rsCreateAllocation_uint4(uint32_t dimX, uint32_t dimY); API 级别 24 中引入
rs_allocation rsCreateAllocation_uint4(uint32_t dimX, uint32_t dimY, uint32_t dimZ); API 级别 24 中引入
rs_allocation rsCreateAllocation_ulong(uint32_t dimX); API 级别 24 中引入
rs_allocation rsCreateAllocation_ulong(uint32_t dimX, uint32_t dimY); API 级别 24 中引入
rs_allocation rsCreateAllocation_ulong(uint32_t dimX, uint32_t dimY, uint32_t dimZ); API 级别 24 中引入
rs_allocation rsCreateAllocation_ulong2(uint32_t dimX); API 级别 24 中引入
rs_allocation rsCreateAllocation_ulong2(uint32_t dimX, uint32_t dimY); API 级别 24 中引入
rs_allocation rsCreateAllocation_ulong2(uint32_t dimX, uint32_t dimY, uint32_t dimZ); API 级别 24 中引入
rs_allocation rsCreateAllocation_ulong3(uint32_t dimX); API 级别 24 中引入
rs_allocation rsCreateAllocation_ulong3(uint32_t dimX, uint32_t dimY); API 级别 24 中引入
rs_allocation rsCreateAllocation_ulong3(uint32_t dimX, uint32_t dimY, uint32_t dimZ); API 级别 24 中引入
rs_allocation rsCreateAllocation_ulong4(uint32_t dimX); API 级别 24 中引入
rs_allocation rsCreateAllocation_ulong4(uint32_t dimX, uint32_t dimY); API 级别 24 中引入
rs_allocation rsCreateAllocation_ulong4(uint32_t dimX, uint32_t dimY, uint32_t dimZ); API 级别 24 中引入
rs_allocation rsCreateAllocation_ushort(uint32_t dimX); API 级别 24 中引入
rs_allocation rsCreateAllocation_ushort(uint32_t dimX, uint32_t dimY); API 级别 24 中引入
rs_allocation rsCreateAllocation_ushort(uint32_t dimX, uint32_t dimY, uint32_t dimZ); API 级别 24 中引入
rs_allocation rsCreateAllocation_ushort2(uint32_t dimX); API 级别 24 中引入
rs_allocation rsCreateAllocation_ushort2(uint32_t dimX, uint32_t dimY); API 级别 24 中引入
rs_allocation rsCreateAllocation_ushort2(uint32_t dimX, uint32_t dimY, uint32_t dimZ); API 级别 24 中引入
rs_allocation rsCreateAllocation_ushort3(uint32_t dimX); API 级别 24 中引入
rs_allocation rsCreateAllocation_ushort3(uint32_t dimX, uint32_t dimY); API 级别 24 中引入
rs_allocation rsCreateAllocation_ushort3(uint32_t dimX, uint32_t dimY, uint32_t dimZ); API 级别 24 中引入
rs_allocation rsCreateAllocation_ushort4(uint32_t dimX); API 级别 24 中引入
rs_allocation rsCreateAllocation_ushort4(uint32_t dimX, uint32_t dimY); API 级别 24 中引入
rs_allocation rsCreateAllocation_ushort4(uint32_t dimX, uint32_t dimY, uint32_t dimZ); API 级别 24 中引入
参数
类型分配类型
能耗分配的用法标志
mipmap
用法
百分比
暗色
调暗
调暗

创建具有指定类型和用法的 rs_allocation 对象。

对于在 RenderScript 脚本中创建的 Allocation,RS_ALLOCATION_USAGE_ 您可以在这里使用标志 RS_ALLOCATION_USAGE_STREAM 和 RS_ALLOCATION_USAGE_GRAPHICS_TEXTURE 作为唯一用途标志。

您还可以使用 rsCreateAllocation_ 封装容器函数直接创建标量和矢量数值类型的分配,而无需创建中间 rs_element 或 rs_type 对象。

例如,rsCreateAllocation_int4() 会返回指定维度的 int4 数据类型的 Allocation。

rsCreateElement :创建指定数据类型的 rs_element 对象

rs_element rsCreateElement(int32_t data_type, int32_t data_Kind, bool isNormalized, uint32_t vecSize); API 级别 24 中引入
rs_element rsCreateElement(rs_data_type data_type); API 级别 24 中引入
参数
数据类型元素的数据类型
数据种类
已标准化
vecSize

创建指定数据类型的 rs_element 对象。该元素的数据类型将设置为 RS_KIND_USER,vector_width 将设置为 1,表示非矢量。

rsCreatePixelElement :创建具有指定数据类型和数据类型的 rs_element 对象

rs_element rsCreatePixelElement(rs_data_type data_type, rs_data_Kind data_Kind); API 级别 24 中引入
参数
数据类型元素的数据类型
数据种类元素的数据类型

创建具有指定数据类型和数据类型的 rs_element 对象。该 Element 的 vector_width 将设为 1,表示为非矢量。

rsCreateType :使用指定的 Element 和形状属性创建 rs_type 对象

rs_type rsCreateType(rs_element element, uint32_t dimX); API 级别 24 中引入
rs_type rsCreateType(rs_element element, uint32_t dimX, uint32_t dimY); API 级别 24 中引入
rs_type rsCreateType(rs_element element, uint32_t dimX, uint32_t dimY, uint32_t dimZ); API 级别 24 中引入
rs_type rsCreateType(rs_element element, uint32_t dimX, uint32_t dimY, uint32_t dimZ, bool mipmaps, bool face, rs_yuv_format yuv_format); API 级别 24 中引入
参数
元素要与类型关联的元素
暗色沿 X 维度调整尺寸
调暗沿 Y 维度调整尺寸
调暗沿 Z 维度调整尺寸
mipmap此标记指示类型是否具有 mipmap 链
此标记指示类型是否为立方体映射
yuv_format类型的 YUV 布局

使用指定的元素和形状属性创建 rs_type 对象。

dimX 用于指定 X 维度的大小。

dimY(如果存在且非零)表示 Y 维度存在并指示其大小。

dimZ(如果存在且非零)表示 Z 维度存在并指示其大小。

mipmap 表示存在细节级别 (LOD)。

surface 表示存在立方体贴图面。

yuv_format 表示关联的 YUV 格式(或 RS_YUV_NONE)。

rsCreateVectorElement :创建具有指定数据类型和矢量宽度的 rs_element 对象

rs_element rsCreateVectorElement(rs_data_type data_type, uint32_t vector_width); API 级别 24 中引入
参数
数据类型元素的数据类型
矢量宽度矢量宽度(2、3 或 4)

创建具有指定数据类型和矢量宽度的 rs_element 对象。 vector_width 的值必须为 2、3 或 4。元素的数据类型将设置为 RS_KIND_USER。