144 lines
		
	
	
		
			4.2 KiB
		
	
	
	
		
			Plaintext
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			144 lines
		
	
	
		
			4.2 KiB
		
	
	
	
		
			Plaintext
		
	
	
		
			Executable File
		
	
	
	
	
| /*
 | |
|  * Copyright (C) 2012 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.
 | |
|  */
 | |
| 
 | |
| /** @file rs_element.rsh
 | |
|  *  \brief Element routines
 | |
|  *
 | |
|  *
 | |
|  */
 | |
| 
 | |
| #ifndef __RS_ELEMENT_RSH__
 | |
| #define __RS_ELEMENT_RSH__
 | |
| 
 | |
| // New API's
 | |
| #if (defined(RS_VERSION) && (RS_VERSION >= 16))
 | |
| 
 | |
| /**
 | |
|  * 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.
 | |
|  *
 | |
|  * @param e element to get data from
 | |
|  * @return number of sub-elements in this element
 | |
|  */
 | |
| extern uint32_t __attribute__((overloadable))
 | |
|     rsElementGetSubElementCount(rs_element e);
 | |
| 
 | |
| /**
 | |
|  * For complex elements, this function will return the
 | |
|  * sub-element at index
 | |
|  *
 | |
|  * @param e element to get data from
 | |
|  * @param index index of the sub-element to return
 | |
|  * @return sub-element in this element at given index
 | |
|  */
 | |
| extern rs_element __attribute__((overloadable))
 | |
|     rsElementGetSubElement(rs_element, uint32_t index);
 | |
| 
 | |
| /**
 | |
|  * For complex elements, this function will return the length of
 | |
|  * sub-element name at index
 | |
|  *
 | |
|  * @param e element to get data from
 | |
|  * @param index index of the sub-element to return
 | |
|  * @return length of the sub-element name including the null
 | |
|  *         terminator (size of buffer needed to write the name)
 | |
|  */
 | |
| extern uint32_t __attribute__((overloadable))
 | |
|     rsElementGetSubElementNameLength(rs_element e, uint32_t index);
 | |
| 
 | |
| /**
 | |
|  * For complex elements, this function will return the
 | |
|  * sub-element name at index
 | |
|  *
 | |
|  * @param e element to get data from
 | |
|  * @param index index of the sub-element
 | |
|  * @param name array to store the name into
 | |
|  * @param nameLength length of the provided name array
 | |
|  * @return number of characters actually written, excluding the
 | |
|  *         null terminator
 | |
|  */
 | |
| extern uint32_t __attribute__((overloadable))
 | |
|     rsElementGetSubElementName(rs_element e, uint32_t index, char *name, uint32_t nameLength);
 | |
| 
 | |
| /**
 | |
|  * For complex elements, some sub-elements could be statically
 | |
|  * sized arrays. This function will return the array size for
 | |
|  * sub-element at index
 | |
|  *
 | |
|  * @param e element to get data from
 | |
|  * @param index index of the sub-element
 | |
|  * @return array size of sub-element in this element at given
 | |
|  *         index
 | |
|  */
 | |
| extern uint32_t __attribute__((overloadable))
 | |
|     rsElementGetSubElementArraySize(rs_element e, uint32_t index);
 | |
| 
 | |
| /**
 | |
|  * This function specifies the location of a sub-element within
 | |
|  * the element
 | |
|  *
 | |
|  * @param e element to get data from
 | |
|  * @param index index of the sub-element
 | |
|  * @return offset in bytes of sub-element in this element at
 | |
|  *         given index
 | |
|  */
 | |
| extern uint32_t __attribute__((overloadable))
 | |
|     rsElementGetSubElementOffsetBytes(rs_element e, uint32_t index);
 | |
| 
 | |
| /**
 | |
|  * Returns the size of element in bytes
 | |
|  *
 | |
|  * @param e element to get data from
 | |
|  * @return total size of the element in bytes
 | |
|  */
 | |
| extern uint32_t __attribute__((overloadable))
 | |
|     rsElementGetBytesSize(rs_element e);
 | |
| 
 | |
| /**
 | |
|  * Returns the element's data type
 | |
|  *
 | |
|  * @param e element to get data from
 | |
|  * @return element's data type
 | |
|  */
 | |
| extern rs_data_type __attribute__((overloadable))
 | |
|     rsElementGetDataType(rs_element e);
 | |
| 
 | |
| /**
 | |
|  * Returns the element's data kind
 | |
|  *
 | |
|  * @param e element to get data from
 | |
|  * @return element's data size
 | |
|  */
 | |
| extern rs_data_kind __attribute__((overloadable))
 | |
|     rsElementGetDataKind(rs_element e);
 | |
| 
 | |
| /**
 | |
|  * Returns the element's vector size
 | |
|  *
 | |
|  * @param e element to get data from
 | |
|  * @return length of the element vector (for float2, float3,
 | |
|  *         etc.)
 | |
|  */
 | |
| extern uint32_t __attribute__((overloadable))
 | |
|     rsElementGetVectorSize(rs_element e);
 | |
| 
 | |
| #endif // (defined(RS_VERSION) && (RS_VERSION >= 16))
 | |
| 
 | |
| #endif // __RS_ELEMENT_RSH__
 | |
| 
 |