blob: 9a020a2a7f43b0cd190b57006ad1b4acd59b0752 [file] [log] [blame]
#
# 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: