| /* |
| * 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/generate.sh. |
| |
| /* |
| * rs_object_info.rsh: Object Characteristics Functions |
| * |
| * The functions below can be used to query the characteristics of an allocation, |
| * element, or sampler object. These objects are created from Java. |
| * |
| * 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. |
| * |
| * Use rsGetDimHasFaces() to get the dimension of a currently running kernel. |
| * |
| * 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 detail |
| * |
| * Query an allocation for the presence of more than one Level Of Detail. |
| * This is useful for mipmaps. |
| * |
| * Use rsGetDimLod() to get the dimension of a currently running kernel. |
| * |
| * 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. |
| * |
| * Use rsGetDimX() to get the dimension of a currently running kernel. |
| * |
| * 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. |
| * |
| * Use rsGetDimY() to get the dimension of a currently running kernel. |
| * |
| * 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. |
| * |
| * Use rsGetDimZ() to get the dimension of a currently running kernel. |
| * |
| * 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: Release an object |
| * |
| * Tells the run time that this handle will no longer be used to access the |
| * the related object. If this was the last handle to that object, resource |
| * recovery may happen. |
| * |
| * After calling this function, *dst will be set to an empty handle. See |
| * rsIsObject(). |
| */ |
| 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: Check for an empty handle |
| * |
| * Returns true if the handle contains a non-null reference. |
| * |
| * This function does not validate that the internal pointer used in the handle |
| * points to an actual valid object; it only checks for null. |
| * |
| * This function can be used to check the element returned by |
| * rsElementGetSubElement() or see if rsClearObject() has been called on a |
| * handle. |
| */ |
| 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 |
| * |
| * DEPRECATED. Do not use. |
| * |
| * 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. |
| */ |
| 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 |