# # Copyright (C) 2015 The Android Open Source Project # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # header: summary: Allocation Creation Functions description: The functions below can be used to create Allocations from a Script. These functions can be called directly or indirectly from an invokable function. If some control-flow path can result in a call to these functions from a RenderScript kernel function, a compiler error will be generated. end: function: rsCreateElement version: 24 ret: rs_element arg: rs_data_type data_type, "Data type of the Element" summary: Creates an rs_element object of the specified data type description: Creates an rs_element object of the specified data type. The data kind of the Element will be set to RS_KIND_USER and vector_width will be set to 1, indicating non-vector. test: none end: function: rsCreateVectorElement version: 24 ret: rs_element arg: rs_data_type data_type, "Data type of the Element" arg: uint32_t vector_width, "Vector width (either 2, 3, or 4)" summary: Creates an rs_element object of the specified data type and vector width description: Creates an rs_element object of the specified data type and vector width. Value of vector_width must be 2, 3 or 4. The data kind of the Element will be set to RS_KIND_USER. test: none end: function: rsCreatePixelElement version: 24 ret: rs_element arg: rs_data_type data_type, "Data type of the Element" arg: rs_data_kind data_kind, "Data kind of the Element" summary: Creates an rs_element object of the specified data type and data kind description: Creates an rs_element object of the specified data type and data kind. The vector_width of the Element will be set to 1, indicating non-vector. test: none end: function: rsCreateElement version: 24 internal: true ret: rs_element arg: int32_t data_type arg: int32_t data_kind arg: bool isNormalized arg: uint32_t vecSize test: none end: function: rsCreateType version: 24 ret: rs_type arg: rs_element element, "Element to be associated with the Type" arg: uint32_t dimX, "Size along the X dimension" arg: uint32_t dimY, "Size along the Y dimension" arg: uint32_t dimZ, "Size along the Z dimension" arg: bool mipmaps, "Flag indicating if the Type has a mipmap chain" arg: bool faces, "Flag indicating if the Type is a cubemap" arg: rs_yuv_format yuv_format, "YUV layout for the Type" summary: Creates an rs_type object with the specified Element and shape attributes description: Creates an rs_type object with the specified Element and shape attributes. dimX specifies the size of the X dimension. dimY, if present and non-zero, indicates that the Y dimension is present and indicates its size. dimZ, if present and non-zero, indicates that the Z dimension is present and indicates its size. mipmaps indicates the presence of level of detail (LOD). faces indicates the presence of cubemap faces. yuv_format indicates the associated YUV format (or RS_YUV_NONE). test: none end: function: rsCreateType version: 24 ret: rs_type arg: rs_element element arg: uint32_t dimX arg: uint32_t dimY arg: uint32_t dimZ test:none end: function: rsCreateType version: 24 ret: rs_type arg: rs_element element arg: uint32_t dimX arg: uint32_t dimY test:none end: function: rsCreateType version: 24 ret: rs_type arg: rs_element element arg: uint32_t dimX test:none end: function: rsCreateAllocation version: 24 ret: rs_allocation arg: rs_type type, "Type of the Allocation" arg: uint32_t usage, "Usage flag for the allocation" summary: Create an rs_allocation object of given Type. description: Creates an rs_allocation object of the given Type and usage. RS_ALLOCATION_USAGE_SCRIPT and RS_ALLOCATION_USAGE_GRAPHICS_TEXTURE are the only supported usage flags for Allocations created from within a RenderScript Script. You can also use rsCreateAllocation_<type><width> wrapper functions to directly create Allocations of scalar and vector numerical types without creating intermediate rs_element or rs_type objects. E.g. rsCreateAllocation_int4() returns an Allocation of int4 data type of specified dimensions. test: none end: function: rsCreateAllocation version: 24 ret: rs_allocation arg: rs_type type test: none end: function: rsCreateAllocation version: 24 internal: true ret: rs_allocation arg: rs_type type arg: rs_allocation_mipmap_control mipmap arg: uint32_t usages arg: void* ptr test: none end: function: rsCreateAllocation_#1 version: 24 t: u8, u16, u32, u64, i8, i16, i32, i64, f16, f32, f64 ret: rs_allocation arg: uint32_t dimX arg: uint32_t dimY arg: uint32_t dimZ inline: rs_element e = rsCreateElement(RS_TYPE_#RST_1); rs_type t = rsCreateType(e, dimX, dimY, dimZ); return rsCreateAllocation(t); test: none end: function: rsCreateAllocation_#2#1 version: 24 w: 2, 3, 4 t: u8, u16, u32, u64, i8, i16, i32, i64, f16, f32, f64 ret: rs_allocation arg: uint32_t dimX arg: uint32_t dimY arg: uint32_t dimZ inline: rs_element e = rsCreateVectorElement(RS_TYPE_#RST_2, #1); rs_type t = rsCreateType(e, dimX, dimY, dimZ); return rsCreateAllocation(t); test: none end: function: rsCreateAllocation_#1 version: 24 t: u8, u16, u32, u64, i8, i16, i32, i64, f16, f32, f64 ret: rs_allocation arg: uint32_t dimX arg: uint32_t dimY inline: rs_element e = rsCreateElement(RS_TYPE_#RST_1); rs_type t = rsCreateType(e, dimX, dimY); return rsCreateAllocation(t); test: none end: function: rsCreateAllocation_#2#1 version: 24 w: 2, 3, 4 t: u8, u16, u32, u64, i8, i16, i32, i64, f16, f32, f64 ret: rs_allocation arg: uint32_t dimX arg: uint32_t dimY inline: rs_element e = rsCreateVectorElement(RS_TYPE_#RST_2, #1); rs_type t = rsCreateType(e, dimX, dimY); return rsCreateAllocation(t); test: none end: function: rsCreateAllocation_#1 version: 24 t: u8, u16, u32, u64, i8, i16, i32, i64, f16, f32, f64 ret: rs_allocation arg: uint32_t dimX inline: rs_element e = rsCreateElement(RS_TYPE_#RST_1); rs_type t = rsCreateType(e, dimX); return rsCreateAllocation(t); test: none end: function: rsCreateAllocation_#2#1 version: 24 w: 2, 3, 4 t: u8, u16, u32, u64, i8, i16, i32, i64, f16, f32, f64 ret: rs_allocation arg: uint32_t dimX inline: rs_element e = rsCreateVectorElement(RS_TYPE_#RST_2, #1); rs_type t = rsCreateType(e, dimX); return rsCreateAllocation(t); test: none end: