From be2163801c33d6849ae580d42b919b8803d55095 Mon Sep 17 00:00:00 2001 From: Jean-Luc Brouillet Date: Sun, 22 Mar 2015 12:44:27 -0700 Subject: Reorganize the header files in a way that's easier to document. This CL does not change any specification found in a .spec file, it just reorganizes the distribution of the content. It also changes a few files that included headers that no longer exist. Change-Id: I4a290a30ad3bdc31bac7a7be24e7a7dea2af2618 --- scriptc/rs_object_info.rsh | 404 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 404 insertions(+) create mode 100644 scriptc/rs_object_info.rsh (limited to 'scriptc/rs_object_info.rsh') diff --git a/scriptc/rs_object_info.rsh b/scriptc/rs_object_info.rsh new file mode 100644 index 00000000..25ac326b --- /dev/null +++ b/scriptc/rs_object_info.rsh @@ -0,0 +1,404 @@ +/* + * 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. + */ + +// Don't edit this file! It is auto-generated by frameworks/rs/api/gen_runtime. + +/* + * rs_object_info.rsh: Element functions + * + * The term "element" is used a bit ambiguously in RenderScript, as both + * the type of an item of an allocation and the instantiation of that type: + * + * rs_element is a handle to a type specification, and + * + * In functions like rsGetElementAt(), "element" means the instantiation + * of the type, i.e. an item of an allocation. + * + * The functions below let you query the characteristics of the type specificiation. + * + * To create complex elements, use the Element.Builder Java class. + * For common elements, in Java you can simply use one of the many predefined elements + * like F32_2. You can't create elements from a script. + * + * An element can be a simple data type as found in C/C++, a handle type, + * a structure, or a fixed size vector (of size 2, 3, or 4) of sub-elements. + * + * Elements can also have a kind, which is semantic information used mostly to + * interpret pixel data. + */ +#ifndef RENDERSCRIPT_RS_OBJECT_INFO_RSH +#define RENDERSCRIPT_RS_OBJECT_INFO_RSH + +/* + * rsAllocationGetDimFaces: Presence of more than one face + * + * If the allocation is a cubemap, this function returns 1 if there's more than one + * face present. In all other cases, it returns 0. + * + * Returns: Returns 1 if more than one face is present, 0 otherwise. + */ +extern uint32_t __attribute__((overloadable)) + rsAllocationGetDimFaces(rs_allocation a); + +/* + * rsAllocationGetDimLOD: Presence of levels of details + * + * Query an allocation for the presence of more than one Level Of Details. This is useful for mipmaps. + * + * Returns: Returns 1 if more than one LOD is present, 0 otherwise. + */ +extern uint32_t __attribute__((overloadable)) + rsAllocationGetDimLOD(rs_allocation a); + +/* + * rsAllocationGetDimX: Size of the X dimension + * + * Returns the size of the X dimension of the allocation. + * + * Returns: The X dimension of the allocation. + */ +extern uint32_t __attribute__((overloadable)) + rsAllocationGetDimX(rs_allocation a); + +/* + * rsAllocationGetDimY: Size of the Y dimension + * + * Returns the size of the Y dimension of the allocation. + * If the allocation has less than two dimensions, returns 0. + * + * Returns: The Y dimension of the allocation. + */ +extern uint32_t __attribute__((overloadable)) + rsAllocationGetDimY(rs_allocation a); + +/* + * rsAllocationGetDimZ: Size of the Z dimension + * + * Returns the size of the Z dimension of the allocation. + * If the allocation has less than three dimensions, returns 0. + * + * Returns: The Z dimension of the allocation. + */ +extern uint32_t __attribute__((overloadable)) + rsAllocationGetDimZ(rs_allocation a); + +/* + * Get the element object describing the allocation's layout + * + * Parameters: + * a allocation to get data from + * + * Returns: element describing allocation layout + */ +extern rs_element __attribute__((overloadable)) + rsAllocationGetElement(rs_allocation a); + +/* + * rsClearObject: For internal use. + * + */ +extern void __attribute__((overloadable)) + rsClearObject(rs_element* dst); + +extern void __attribute__((overloadable)) + rsClearObject(rs_type* dst); + +extern void __attribute__((overloadable)) + rsClearObject(rs_allocation* dst); + +extern void __attribute__((overloadable)) + rsClearObject(rs_sampler* dst); + +extern void __attribute__((overloadable)) + rsClearObject(rs_script* dst); + +/* + * rsIsObject: For internal use. + * + */ +extern bool __attribute__((overloadable)) + rsIsObject(rs_element v); + +extern bool __attribute__((overloadable)) + rsIsObject(rs_type v); + +extern bool __attribute__((overloadable)) + rsIsObject(rs_allocation v); + +extern bool __attribute__((overloadable)) + rsIsObject(rs_sampler v); + +extern bool __attribute__((overloadable)) + rsIsObject(rs_script v); + +/* + * rsElementGetBytesSize: Return the size of an element + * + * Returns the size in bytes that an instantiation of this element will occupy. + */ +#if (defined(RS_VERSION) && (RS_VERSION >= 16)) +extern uint32_t __attribute__((overloadable)) + rsElementGetBytesSize(rs_element e); +#endif + +/* + * rsElementGetDataKind: Return the kind of an element + * + * Returns the element's data kind. This is used to interpret pixel data. + * + * See rs_data_kind. + */ +#if (defined(RS_VERSION) && (RS_VERSION >= 16)) +extern rs_data_kind __attribute__((overloadable)) + rsElementGetDataKind(rs_element e); +#endif + +/* + * rsElementGetDataType: Return the data type of an element + * + * Returns the element's base data type. This can be a type similar to C/C++ (e.g. RS_TYPE_UNSIGNED_8), + * a handle (e.g. RS_TYPE_ALLOCATION and RS_TYPE_ELEMENT), or a more complex numerical type + * (e.g.RS_TYPE_UNSIGNED_5_6_5 and RS_TYPE_MATRIX_4X4). + * + * If the element describes a vector, this function returns the data type of one of its items. + * + * If the element describes a structure, RS_TYPE_NONE is returned. + * + * See rs_data_type. + */ +#if (defined(RS_VERSION) && (RS_VERSION >= 16)) +extern rs_data_type __attribute__((overloadable)) + rsElementGetDataType(rs_element e); +#endif + +/* + * rsElementGetSubElement: Return a sub element of a complex element + * + * For the element represents a structure, this function returns the sub-element at + * the specified index. + * + * If the element is not a structure or the index is greater or equal to the number + * of sub-elements, an invalid handle is returned. + * + * Parameters: + * e Element to query + * index Index of the sub-element to return + * + * Returns: Sub-element at the given index + */ +#if (defined(RS_VERSION) && (RS_VERSION >= 16)) +extern rs_element __attribute__((overloadable)) + rsElementGetSubElement(rs_element e, uint32_t index); +#endif + +/* + * rsElementGetSubElementArraySize: Return the array size of a sub element of a complex element + * + * For complex elements, some sub-elements could be statically + * sized arrays. This function returns the array size of the + * sub-element at the index. + * + * Parameters: + * e Element to query + * index Index of the sub-element + * + * Returns: Array size of the sub-element at the given index + */ +#if (defined(RS_VERSION) && (RS_VERSION >= 16)) +extern uint32_t __attribute__((overloadable)) + rsElementGetSubElementArraySize(rs_element e, uint32_t index); +#endif + +/* + * rsElementGetSubElementCount: Return the number of sub-elements + * + * Elements could be simple, such as an int or a float, or a + * structure with multiple sub-elements, such as a collection of + * floats, float2, float4. This function returns zero for simple + * elements or the number of sub-elements otherwise. + * + * Parameters: + * e Element to get data from + * + * Returns: Number of sub-elements in this element + */ +#if (defined(RS_VERSION) && (RS_VERSION >= 16)) +extern uint32_t __attribute__((overloadable)) + rsElementGetSubElementCount(rs_element e); +#endif + +/* + * rsElementGetSubElementName: Return the name of a sub-element + * + * For complex elements, this function returns the name of the sub-element + * at the specified index. + * + * Parameters: + * e Element to get data from + * index Index of the sub-element + * name Array to store the name into + * nameLength Length of the provided name array + * + * Returns: Number of characters actually written, excluding the null terminator + */ +#if (defined(RS_VERSION) && (RS_VERSION >= 16)) +extern uint32_t __attribute__((overloadable)) + rsElementGetSubElementName(rs_element e, uint32_t index, char* name, uint32_t nameLength); +#endif + +/* + * rsElementGetSubElementNameLength: Return the length of the name of a sub-element + * + * For complex elements, this function will return the length of + * sub-element name at index + * + * Parameters: + * e Element to get data from + * index Index of the sub-element to return + * + * Returns: Length of the sub-element name including the null terminator (size of buffer needed to write the name) + */ +#if (defined(RS_VERSION) && (RS_VERSION >= 16)) +extern uint32_t __attribute__((overloadable)) + rsElementGetSubElementNameLength(rs_element e, uint32_t index); +#endif + +/* + * This function specifies the location of a sub-element within + * the element + * + * Parameters: + * e Element to get data from + * index Index of the sub-element + * + * Returns: Offset in bytes of sub-element in this element at given index + */ +#if (defined(RS_VERSION) && (RS_VERSION >= 16)) +extern uint32_t __attribute__((overloadable)) + rsElementGetSubElementOffsetBytes(rs_element e, uint32_t index); +#endif + +/* + * Returns the element's vector size + * + * Parameters: + * e Element to get data from + * + * Returns: Length of the element vector (for float2, float3, etc.) + */ +#if (defined(RS_VERSION) && (RS_VERSION >= 16)) +extern uint32_t __attribute__((overloadable)) + rsElementGetVectorSize(rs_element e); +#endif + +/* + * rsGetAllocation: Returns the Allocation for a given pointer + * + * Returns the Allocation for a given pointer. The pointer should point within + * a valid allocation. The results are undefined if the pointer is not from a + * valid allocation. + * + * This function is deprecated and will be removed from the SDK in a future + * release. + */ +extern rs_allocation __attribute__((overloadable)) + rsGetAllocation(const void* p); + +/* + * Get sampler anisotropy + * + * Parameters: + * s sampler to query + * + * Returns: anisotropy + */ +#if (defined(RS_VERSION) && (RS_VERSION >= 16)) +extern float __attribute__((overloadable)) + rsSamplerGetAnisotropy(rs_sampler s); +#endif + +/* + * Get sampler magnification value + * + * Parameters: + * s sampler to query + * + * Returns: magnification value + */ +#if (defined(RS_VERSION) && (RS_VERSION >= 16)) +extern rs_sampler_value __attribute__((overloadable)) + rsSamplerGetMagnification(rs_sampler s); +#endif + +/* + * Get sampler minification value + * + * Parameters: + * s sampler to query + * + * Returns: minification value + */ +#if (defined(RS_VERSION) && (RS_VERSION >= 16)) +extern rs_sampler_value __attribute__((overloadable)) + rsSamplerGetMinification(rs_sampler s); +#endif + +/* + * Get sampler wrap S value + * + * Parameters: + * s sampler to query + * + * Returns: wrap S value + */ +#if (defined(RS_VERSION) && (RS_VERSION >= 16)) +extern rs_sampler_value __attribute__((overloadable)) + rsSamplerGetWrapS(rs_sampler s); +#endif + +/* + * Get sampler wrap T value + * + * Parameters: + * s sampler to query + * + * Returns: wrap T value + */ +#if (defined(RS_VERSION) && (RS_VERSION >= 16)) +extern rs_sampler_value __attribute__((overloadable)) + rsSamplerGetWrapT(rs_sampler s); +#endif + +/* + * rsSetObject: For internal use. + * + */ +extern void __attribute__((overloadable)) + rsSetObject(rs_element* dst, rs_element src); + +extern void __attribute__((overloadable)) + rsSetObject(rs_type* dst, rs_type src); + +extern void __attribute__((overloadable)) + rsSetObject(rs_allocation* dst, rs_allocation src); + +extern void __attribute__((overloadable)) + rsSetObject(rs_sampler* dst, rs_sampler src); + +extern void __attribute__((overloadable)) + rsSetObject(rs_script* dst, rs_script src); + +#endif // RENDERSCRIPT_RS_OBJECT_INFO_RSH -- cgit v1.2.3