rs_object_info.rsh revision 4a73004df5231d188c41267fee17c566ae7c3631
1be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet/* 2be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * Copyright (C) 2015 The Android Open Source Project 3be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 4be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * Licensed under the Apache License, Version 2.0 (the "License"); 5be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * you may not use this file except in compliance with the License. 6be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * You may obtain a copy of the License at 7be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 8be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * http://www.apache.org/licenses/LICENSE-2.0 9be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 10be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * Unless required by applicable law or agreed to in writing, software 11be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * distributed under the License is distributed on an "AS IS" BASIS, 12be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * See the License for the specific language governing permissions and 14be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * limitations under the License. 15be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet */ 16be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 174a73004df5231d188c41267fee17c566ae7c3631Jean-Luc Brouillet// Don't edit this file! It is auto-generated by frameworks/rs/api/generate.sh. 18be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 19be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet/* 20be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * rs_object_info.rsh: Element functions 21be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 22be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * The term "element" is used a bit ambiguously in RenderScript, as both 23be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * the type of an item of an allocation and the instantiation of that type: 24be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 254a73004df5231d188c41267fee17c566ae7c3631Jean-Luc Brouillet * - rs_element is a handle to a type specification, and 26be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 274a73004df5231d188c41267fee17c566ae7c3631Jean-Luc Brouillet * - In functions like rsGetElementAt(), "element" means the instantiation 28be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * of the type, i.e. an item of an allocation. 29be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 30be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * The functions below let you query the characteristics of the type specificiation. 31be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 32be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * To create complex elements, use the Element.Builder Java class. 33be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * For common elements, in Java you can simply use one of the many predefined elements 34be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * like F32_2. You can't create elements from a script. 35be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 36be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * An element can be a simple data type as found in C/C++, a handle type, 37be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * a structure, or a fixed size vector (of size 2, 3, or 4) of sub-elements. 38be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 39be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * Elements can also have a kind, which is semantic information used mostly to 40be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * interpret pixel data. 41be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet */ 424a73004df5231d188c41267fee17c566ae7c3631Jean-Luc Brouillet 43be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#ifndef RENDERSCRIPT_RS_OBJECT_INFO_RSH 44be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#define RENDERSCRIPT_RS_OBJECT_INFO_RSH 45be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 46be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet/* 47be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * rsAllocationGetDimFaces: Presence of more than one face 48be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 49be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * If the allocation is a cubemap, this function returns 1 if there's more than one 50be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * face present. In all other cases, it returns 0. 51be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 52be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * Returns: Returns 1 if more than one face is present, 0 otherwise. 53be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet */ 54be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern uint32_t __attribute__((overloadable)) 55be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet rsAllocationGetDimFaces(rs_allocation a); 56be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 57be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet/* 58be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * rsAllocationGetDimLOD: Presence of levels of details 59be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 60be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * Query an allocation for the presence of more than one Level Of Details. This is useful for mipmaps. 61be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 62be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * Returns: Returns 1 if more than one LOD is present, 0 otherwise. 63be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet */ 64be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern uint32_t __attribute__((overloadable)) 65be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet rsAllocationGetDimLOD(rs_allocation a); 66be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 67be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet/* 68be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * rsAllocationGetDimX: Size of the X dimension 69be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 70be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * Returns the size of the X dimension of the allocation. 71be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 72be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * Returns: The X dimension of the allocation. 73be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet */ 74be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern uint32_t __attribute__((overloadable)) 75be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet rsAllocationGetDimX(rs_allocation a); 76be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 77be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet/* 78be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * rsAllocationGetDimY: Size of the Y dimension 79be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 80be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * Returns the size of the Y dimension of the allocation. 81be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * If the allocation has less than two dimensions, returns 0. 82be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 83be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * Returns: The Y dimension of the allocation. 84be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet */ 85be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern uint32_t __attribute__((overloadable)) 86be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet rsAllocationGetDimY(rs_allocation a); 87be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 88be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet/* 89be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * rsAllocationGetDimZ: Size of the Z dimension 90be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 91be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * Returns the size of the Z dimension of the allocation. 92be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * If the allocation has less than three dimensions, returns 0. 93be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 94be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * Returns: The Z dimension of the allocation. 95be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet */ 96be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern uint32_t __attribute__((overloadable)) 97be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet rsAllocationGetDimZ(rs_allocation a); 98be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 99be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet/* 100be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * Get the element object describing the allocation's layout 101be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 102be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * Parameters: 1034a73004df5231d188c41267fee17c566ae7c3631Jean-Luc Brouillet * a: allocation to get data from 104be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 105be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * Returns: element describing allocation layout 106be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet */ 107be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern rs_element __attribute__((overloadable)) 108be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet rsAllocationGetElement(rs_allocation a); 109be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 110be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet/* 111be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * rsClearObject: For internal use. 112be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 113be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet */ 114be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern void __attribute__((overloadable)) 115be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet rsClearObject(rs_element* dst); 116be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 117be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern void __attribute__((overloadable)) 118be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet rsClearObject(rs_type* dst); 119be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 120be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern void __attribute__((overloadable)) 121be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet rsClearObject(rs_allocation* dst); 122be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 123be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern void __attribute__((overloadable)) 124be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet rsClearObject(rs_sampler* dst); 125be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 126be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern void __attribute__((overloadable)) 127be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet rsClearObject(rs_script* dst); 128be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 129be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet/* 130be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * rsIsObject: For internal use. 131be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 132be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet */ 133be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern bool __attribute__((overloadable)) 134be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet rsIsObject(rs_element v); 135be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 136be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern bool __attribute__((overloadable)) 137be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet rsIsObject(rs_type v); 138be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 139be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern bool __attribute__((overloadable)) 140be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet rsIsObject(rs_allocation v); 141be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 142be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern bool __attribute__((overloadable)) 143be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet rsIsObject(rs_sampler v); 144be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 145be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern bool __attribute__((overloadable)) 146be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet rsIsObject(rs_script v); 147be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 148be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet/* 149be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * rsElementGetBytesSize: Return the size of an element 150be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 151be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * Returns the size in bytes that an instantiation of this element will occupy. 152be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet */ 153be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 16)) 154be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern uint32_t __attribute__((overloadable)) 155be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet rsElementGetBytesSize(rs_element e); 156be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 157be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 158be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet/* 159be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * rsElementGetDataKind: Return the kind of an element 160be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 161be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * Returns the element's data kind. This is used to interpret pixel data. 162be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 163be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * See rs_data_kind. 164be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet */ 165be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 16)) 166be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern rs_data_kind __attribute__((overloadable)) 167be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet rsElementGetDataKind(rs_element e); 168be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 169be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 170be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet/* 171be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * rsElementGetDataType: Return the data type of an element 172be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 173be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * Returns the element's base data type. This can be a type similar to C/C++ (e.g. RS_TYPE_UNSIGNED_8), 174be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * a handle (e.g. RS_TYPE_ALLOCATION and RS_TYPE_ELEMENT), or a more complex numerical type 175be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * (e.g.RS_TYPE_UNSIGNED_5_6_5 and RS_TYPE_MATRIX_4X4). 176be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 177be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * If the element describes a vector, this function returns the data type of one of its items. 178be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 179be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * If the element describes a structure, RS_TYPE_NONE is returned. 180be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 181be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * See rs_data_type. 182be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet */ 183be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 16)) 184be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern rs_data_type __attribute__((overloadable)) 185be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet rsElementGetDataType(rs_element e); 186be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 187be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 188be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet/* 189be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * rsElementGetSubElement: Return a sub element of a complex element 190be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 191be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * For the element represents a structure, this function returns the sub-element at 192be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * the specified index. 193be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 194be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * If the element is not a structure or the index is greater or equal to the number 195be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * of sub-elements, an invalid handle is returned. 196be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 197be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * Parameters: 1984a73004df5231d188c41267fee17c566ae7c3631Jean-Luc Brouillet * e: Element to query 1994a73004df5231d188c41267fee17c566ae7c3631Jean-Luc Brouillet * index: Index of the sub-element to return 200be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 201be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * Returns: Sub-element at the given index 202be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet */ 203be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 16)) 204be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern rs_element __attribute__((overloadable)) 205be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet rsElementGetSubElement(rs_element e, uint32_t index); 206be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 207be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 208be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet/* 209be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * rsElementGetSubElementArraySize: Return the array size of a sub element of a complex element 210be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 211be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * For complex elements, some sub-elements could be statically 212be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * sized arrays. This function returns the array size of the 213be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * sub-element at the index. 214be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 215be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * Parameters: 2164a73004df5231d188c41267fee17c566ae7c3631Jean-Luc Brouillet * e: Element to query 2174a73004df5231d188c41267fee17c566ae7c3631Jean-Luc Brouillet * index: Index of the sub-element 218be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 219be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * Returns: Array size of the sub-element at the given index 220be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet */ 221be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 16)) 222be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern uint32_t __attribute__((overloadable)) 223be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet rsElementGetSubElementArraySize(rs_element e, uint32_t index); 224be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 225be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 226be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet/* 227be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * rsElementGetSubElementCount: Return the number of sub-elements 228be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 229be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * Elements could be simple, such as an int or a float, or a 230be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * structure with multiple sub-elements, such as a collection of 231be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * floats, float2, float4. This function returns zero for simple 232be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * elements or the number of sub-elements otherwise. 233be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 234be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * Parameters: 2354a73004df5231d188c41267fee17c566ae7c3631Jean-Luc Brouillet * e: Element to get data from 236be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 237be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * Returns: Number of sub-elements in this element 238be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet */ 239be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 16)) 240be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern uint32_t __attribute__((overloadable)) 241be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet rsElementGetSubElementCount(rs_element e); 242be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 243be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 244be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet/* 245be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * rsElementGetSubElementName: Return the name of a sub-element 246be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 247be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * For complex elements, this function returns the name of the sub-element 248be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * at the specified index. 249be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 250be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * Parameters: 2514a73004df5231d188c41267fee17c566ae7c3631Jean-Luc Brouillet * e: Element to get data from 2524a73004df5231d188c41267fee17c566ae7c3631Jean-Luc Brouillet * index: Index of the sub-element 2534a73004df5231d188c41267fee17c566ae7c3631Jean-Luc Brouillet * name: Array to store the name into 2544a73004df5231d188c41267fee17c566ae7c3631Jean-Luc Brouillet * nameLength: Length of the provided name array 255be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 256be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * Returns: Number of characters actually written, excluding the null terminator 257be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet */ 258be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 16)) 259be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern uint32_t __attribute__((overloadable)) 260be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet rsElementGetSubElementName(rs_element e, uint32_t index, char* name, uint32_t nameLength); 261be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 262be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 263be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet/* 264be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * rsElementGetSubElementNameLength: Return the length of the name of a sub-element 265be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 266be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * For complex elements, this function will return the length of 267be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * sub-element name at index 268be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 269be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * Parameters: 2704a73004df5231d188c41267fee17c566ae7c3631Jean-Luc Brouillet * e: Element to get data from 2714a73004df5231d188c41267fee17c566ae7c3631Jean-Luc Brouillet * index: Index of the sub-element to return 272be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 273be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * Returns: Length of the sub-element name including the null terminator (size of buffer needed to write the name) 274be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet */ 275be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 16)) 276be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern uint32_t __attribute__((overloadable)) 277be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet rsElementGetSubElementNameLength(rs_element e, uint32_t index); 278be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 279be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 280be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet/* 281be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * This function specifies the location of a sub-element within 282be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * the element 283be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 284be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * Parameters: 2854a73004df5231d188c41267fee17c566ae7c3631Jean-Luc Brouillet * e: Element to get data from 2864a73004df5231d188c41267fee17c566ae7c3631Jean-Luc Brouillet * index: Index of the sub-element 287be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 288be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * Returns: Offset in bytes of sub-element in this element at given index 289be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet */ 290be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 16)) 291be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern uint32_t __attribute__((overloadable)) 292be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet rsElementGetSubElementOffsetBytes(rs_element e, uint32_t index); 293be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 294be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 295be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet/* 296be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * Returns the element's vector size 297be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 298be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * Parameters: 2994a73004df5231d188c41267fee17c566ae7c3631Jean-Luc Brouillet * e: Element to get data from 300be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 301be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * Returns: Length of the element vector (for float2, float3, etc.) 302be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet */ 303be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 16)) 304be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern uint32_t __attribute__((overloadable)) 305be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet rsElementGetVectorSize(rs_element e); 306be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 307be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 308be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet/* 309be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * rsGetAllocation: Returns the Allocation for a given pointer 310be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 311be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * Returns the Allocation for a given pointer. The pointer should point within 312be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * a valid allocation. The results are undefined if the pointer is not from a 313be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * valid allocation. 314be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 315be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * This function is deprecated and will be removed from the SDK in a future 316be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * release. 317be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet */ 318be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern rs_allocation __attribute__((overloadable)) 319be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet rsGetAllocation(const void* p); 320be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 321be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet/* 322be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * Get sampler anisotropy 323be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 324be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * Parameters: 3254a73004df5231d188c41267fee17c566ae7c3631Jean-Luc Brouillet * s: sampler to query 326be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 327be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * Returns: anisotropy 328be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet */ 329be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 16)) 330be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float __attribute__((overloadable)) 331be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet rsSamplerGetAnisotropy(rs_sampler s); 332be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 333be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 334be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet/* 335be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * Get sampler magnification value 336be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 337be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * Parameters: 3384a73004df5231d188c41267fee17c566ae7c3631Jean-Luc Brouillet * s: sampler to query 339be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 340be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * Returns: magnification value 341be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet */ 342be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 16)) 343be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern rs_sampler_value __attribute__((overloadable)) 344be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet rsSamplerGetMagnification(rs_sampler s); 345be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 346be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 347be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet/* 348be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * Get sampler minification value 349be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 350be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * Parameters: 3514a73004df5231d188c41267fee17c566ae7c3631Jean-Luc Brouillet * s: sampler to query 352be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 353be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * Returns: minification value 354be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet */ 355be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 16)) 356be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern rs_sampler_value __attribute__((overloadable)) 357be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet rsSamplerGetMinification(rs_sampler s); 358be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 359be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 360be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet/* 361be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * Get sampler wrap S value 362be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 363be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * Parameters: 3644a73004df5231d188c41267fee17c566ae7c3631Jean-Luc Brouillet * s: sampler to query 365be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 366be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * Returns: wrap S value 367be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet */ 368be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 16)) 369be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern rs_sampler_value __attribute__((overloadable)) 370be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet rsSamplerGetWrapS(rs_sampler s); 371be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 372be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 373be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet/* 374be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * Get sampler wrap T value 375be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 376be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * Parameters: 3774a73004df5231d188c41267fee17c566ae7c3631Jean-Luc Brouillet * s: sampler to query 378be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 379be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * Returns: wrap T value 380be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet */ 381be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 16)) 382be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern rs_sampler_value __attribute__((overloadable)) 383be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet rsSamplerGetWrapT(rs_sampler s); 384be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 385be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 386be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet/* 387be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * rsSetObject: For internal use. 388be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 389be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet */ 390be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern void __attribute__((overloadable)) 391be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet rsSetObject(rs_element* dst, rs_element src); 392be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 393be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern void __attribute__((overloadable)) 394be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet rsSetObject(rs_type* dst, rs_type src); 395be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 396be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern void __attribute__((overloadable)) 397be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet rsSetObject(rs_allocation* dst, rs_allocation src); 398be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 399be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern void __attribute__((overloadable)) 400be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet rsSetObject(rs_sampler* dst, rs_sampler src); 401be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 402be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern void __attribute__((overloadable)) 403be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet rsSetObject(rs_script* dst, rs_script src); 404be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 405be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif // RENDERSCRIPT_RS_OBJECT_INFO_RSH 406