Order files
This commit is contained in:
		
							
								
								
									
										378
									
								
								android/tools/android-osx/build-tools/19.1.0/renderscript/include/rs_matrix.rsh
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										378
									
								
								android/tools/android-osx/build-tools/19.1.0/renderscript/include/rs_matrix.rsh
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,378 @@ | ||||
| /* | ||||
|  * Copyright (C) 2011 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_matrix.rsh | ||||
|  *  \brief Matrix routines | ||||
|  * | ||||
|  * | ||||
|  */ | ||||
|  | ||||
| #ifndef __RS_MATRIX_RSH__ | ||||
| #define __RS_MATRIX_RSH__ | ||||
|  | ||||
| /** | ||||
|  * Set one element of a matrix. | ||||
|  * | ||||
|  * @param m The matrix to be set | ||||
|  * @param row | ||||
|  * @param col | ||||
|  * @param v | ||||
|  * | ||||
|  * @return void | ||||
|  */ | ||||
| _RS_RUNTIME void __attribute__((overloadable)) | ||||
| rsMatrixSet(rs_matrix4x4 *m, uint32_t row, uint32_t col, float v); | ||||
| /** | ||||
|  * \overload | ||||
|  */ | ||||
| _RS_RUNTIME void __attribute__((overloadable)) | ||||
| rsMatrixSet(rs_matrix3x3 *m, uint32_t row, uint32_t col, float v); | ||||
| /** | ||||
|  * \overload | ||||
|  */ | ||||
| _RS_RUNTIME void __attribute__((overloadable)) | ||||
| rsMatrixSet(rs_matrix2x2 *m, uint32_t row, uint32_t col, float v); | ||||
|  | ||||
| /** | ||||
|  * Get one element of a matrix. | ||||
|  * | ||||
|  * @param m The matrix to read from | ||||
|  * @param row | ||||
|  * @param col | ||||
|  * | ||||
|  * @return float | ||||
|  */ | ||||
| _RS_RUNTIME float __attribute__((overloadable)) | ||||
| rsMatrixGet(const rs_matrix4x4 *m, uint32_t row, uint32_t col); | ||||
| /** | ||||
|  * \overload | ||||
|  */ | ||||
| _RS_RUNTIME float __attribute__((overloadable)) | ||||
| rsMatrixGet(const rs_matrix3x3 *m, uint32_t row, uint32_t col); | ||||
| /** | ||||
|  * \overload | ||||
|  */ | ||||
| _RS_RUNTIME float __attribute__((overloadable)) | ||||
| rsMatrixGet(const rs_matrix2x2 *m, uint32_t row, uint32_t col); | ||||
|  | ||||
| /** | ||||
|  * Set the elements of a matrix to the identity matrix. | ||||
|  * | ||||
|  * @param m | ||||
|  */ | ||||
| extern void __attribute__((overloadable)) rsMatrixLoadIdentity(rs_matrix4x4 *m); | ||||
| /** | ||||
|  * \overload | ||||
|  */ | ||||
| extern void __attribute__((overloadable)) rsMatrixLoadIdentity(rs_matrix3x3 *m); | ||||
| /** | ||||
|  * \overload | ||||
|  */ | ||||
| extern void __attribute__((overloadable)) rsMatrixLoadIdentity(rs_matrix2x2 *m); | ||||
|  | ||||
| /** | ||||
|  * Set the elements of a matrix from an array of floats. | ||||
|  * | ||||
|  * @param m | ||||
|  */ | ||||
| extern void __attribute__((overloadable)) rsMatrixLoad(rs_matrix4x4 *m, const float *v); | ||||
| /** | ||||
|  * \overload | ||||
|  */ | ||||
| extern void __attribute__((overloadable)) rsMatrixLoad(rs_matrix3x3 *m, const float *v); | ||||
| /** | ||||
|  * \overload | ||||
|  */ | ||||
| extern void __attribute__((overloadable)) rsMatrixLoad(rs_matrix2x2 *m, const float *v); | ||||
| /** | ||||
|  * \overload | ||||
|  */ | ||||
| extern void __attribute__((overloadable)) rsMatrixLoad(rs_matrix4x4 *m, const rs_matrix4x4 *v); | ||||
| /** | ||||
|  * \overload | ||||
|  */ | ||||
| extern void __attribute__((overloadable)) rsMatrixLoad(rs_matrix4x4 *m, const rs_matrix3x3 *v); | ||||
|  | ||||
| /** | ||||
|  * Set the elements of a matrix from another matrix. | ||||
|  * | ||||
|  * @param m | ||||
|  */ | ||||
| extern void __attribute__((overloadable)) rsMatrixLoad(rs_matrix4x4 *m, const rs_matrix2x2 *v); | ||||
| /** | ||||
|  * \overload | ||||
|  */ | ||||
| extern void __attribute__((overloadable)) rsMatrixLoad(rs_matrix3x3 *m, const rs_matrix3x3 *v); | ||||
| /** | ||||
|  * \overload | ||||
|  */ | ||||
| extern void __attribute__((overloadable)) rsMatrixLoad(rs_matrix2x2 *m, const rs_matrix2x2 *v); | ||||
|  | ||||
| /** | ||||
|  * Load a rotation matrix. | ||||
|  * | ||||
|  * @param m | ||||
|  * @param rot | ||||
|  * @param x | ||||
|  * @param y | ||||
|  * @param z | ||||
|  */ | ||||
| extern void __attribute__((overloadable)) | ||||
| rsMatrixLoadRotate(rs_matrix4x4 *m, float rot, float x, float y, float z); | ||||
|  | ||||
| /** | ||||
|  * Load a scale matrix. | ||||
|  * | ||||
|  * @param m | ||||
|  * @param x | ||||
|  * @param y | ||||
|  * @param z | ||||
|  */ | ||||
| extern void __attribute__((overloadable)) | ||||
| rsMatrixLoadScale(rs_matrix4x4 *m, float x, float y, float z); | ||||
|  | ||||
| /** | ||||
|  * Load a translation matrix. | ||||
|  * | ||||
|  * @param m | ||||
|  * @param x | ||||
|  * @param y | ||||
|  * @param z | ||||
|  */ | ||||
| extern void __attribute__((overloadable)) | ||||
| rsMatrixLoadTranslate(rs_matrix4x4 *m, float x, float y, float z); | ||||
|  | ||||
| /** | ||||
|  * Multiply two matrix (lhs, rhs) and place the result in m. | ||||
|  * | ||||
|  * @param m | ||||
|  * @param lhs | ||||
|  * @param rhs | ||||
|  */ | ||||
| extern void __attribute__((overloadable)) | ||||
| rsMatrixLoadMultiply(rs_matrix4x4 *m, const rs_matrix4x4 *lhs, const rs_matrix4x4 *rhs); | ||||
| /** | ||||
|  * \overload | ||||
|  */ | ||||
| extern void __attribute__((overloadable)) | ||||
| rsMatrixLoadMultiply(rs_matrix3x3 *m, const rs_matrix3x3 *lhs, const rs_matrix3x3 *rhs); | ||||
| /** | ||||
|  * \overload | ||||
|  */ | ||||
| extern void __attribute__((overloadable)) | ||||
| rsMatrixLoadMultiply(rs_matrix2x2 *m, const rs_matrix2x2 *lhs, const rs_matrix2x2 *rhs); | ||||
|  | ||||
| /** | ||||
|  * Multiply the matrix m by rhs and place the result back into m. | ||||
|  * | ||||
|  * @param m (lhs) | ||||
|  * @param rhs | ||||
|  */ | ||||
| extern void __attribute__((overloadable)) | ||||
| rsMatrixMultiply(rs_matrix4x4 *m, const rs_matrix4x4 *rhs); | ||||
| /** | ||||
|  * \overload | ||||
|  */ | ||||
| extern void __attribute__((overloadable)) | ||||
| rsMatrixMultiply(rs_matrix3x3 *m, const rs_matrix3x3 *rhs); | ||||
| /** | ||||
|  * \overload | ||||
|  */ | ||||
| extern void __attribute__((overloadable)) | ||||
| rsMatrixMultiply(rs_matrix2x2 *m, const rs_matrix2x2 *rhs); | ||||
|  | ||||
| /** | ||||
|  * Multiple matrix m with a rotation matrix | ||||
|  * | ||||
|  * @param m | ||||
|  * @param rot | ||||
|  * @param x | ||||
|  * @param y | ||||
|  * @param z | ||||
|  */ | ||||
| extern void __attribute__((overloadable)) | ||||
| rsMatrixRotate(rs_matrix4x4 *m, float rot, float x, float y, float z); | ||||
|  | ||||
| /** | ||||
|  * Multiple matrix m with a scale matrix | ||||
|  * | ||||
|  * @param m | ||||
|  * @param x | ||||
|  * @param y | ||||
|  * @param z | ||||
|  */ | ||||
| extern void __attribute__((overloadable)) | ||||
| rsMatrixScale(rs_matrix4x4 *m, float x, float y, float z); | ||||
|  | ||||
| /** | ||||
|  * Multiple matrix m with a translation matrix | ||||
|  * | ||||
|  * @param m | ||||
|  * @param x | ||||
|  * @param y | ||||
|  * @param z | ||||
|  */ | ||||
| extern void __attribute__((overloadable)) | ||||
| rsMatrixTranslate(rs_matrix4x4 *m, float x, float y, float z); | ||||
|  | ||||
| /** | ||||
|  * Load an Ortho projection matrix constructed from the 6 planes | ||||
|  * | ||||
|  * @param m | ||||
|  * @param left | ||||
|  * @param right | ||||
|  * @param bottom | ||||
|  * @param top | ||||
|  * @param near | ||||
|  * @param far | ||||
|  */ | ||||
| extern void __attribute__((overloadable)) | ||||
| rsMatrixLoadOrtho(rs_matrix4x4 *m, float left, float right, float bottom, float top, float near, float far); | ||||
|  | ||||
| /** | ||||
|  * Load an Frustum projection matrix constructed from the 6 planes | ||||
|  * | ||||
|  * @param m | ||||
|  * @param left | ||||
|  * @param right | ||||
|  * @param bottom | ||||
|  * @param top | ||||
|  * @param near | ||||
|  * @param far | ||||
|  */ | ||||
| extern void __attribute__((overloadable)) | ||||
| rsMatrixLoadFrustum(rs_matrix4x4 *m, float left, float right, float bottom, float top, float near, float far); | ||||
|  | ||||
| /** | ||||
|  * Load an perspective projection matrix constructed from the 6 planes | ||||
|  * | ||||
|  * @param m | ||||
|  * @param fovy Field of view, in degrees along the Y axis. | ||||
|  * @param aspect Ratio of x / y. | ||||
|  * @param near | ||||
|  * @param far | ||||
|  */ | ||||
| extern void __attribute__((overloadable)) | ||||
| rsMatrixLoadPerspective(rs_matrix4x4* m, float fovy, float aspect, float near, float far); | ||||
|  | ||||
| #if !defined(RS_VERSION) || (RS_VERSION < 14) | ||||
| /** | ||||
|  * Multiply a vector by a matrix and return the result vector. | ||||
|  * API version 10-13 | ||||
|  */ | ||||
| _RS_RUNTIME float4 __attribute__((overloadable)) | ||||
| rsMatrixMultiply(rs_matrix4x4 *m, float4 in); | ||||
|  | ||||
| /** | ||||
|  * \overload | ||||
|  */ | ||||
| _RS_RUNTIME float4 __attribute__((overloadable)) | ||||
| rsMatrixMultiply(rs_matrix4x4 *m, float3 in); | ||||
|  | ||||
| /** | ||||
|  * \overload | ||||
|  */ | ||||
| _RS_RUNTIME float4 __attribute__((overloadable)) | ||||
| rsMatrixMultiply(rs_matrix4x4 *m, float2 in); | ||||
|  | ||||
| /** | ||||
|  * \overload | ||||
|  */ | ||||
| _RS_RUNTIME float3 __attribute__((overloadable)) | ||||
| rsMatrixMultiply(rs_matrix3x3 *m, float3 in); | ||||
|  | ||||
| /** | ||||
|  * \overload | ||||
|  */ | ||||
| _RS_RUNTIME float3 __attribute__((overloadable)) | ||||
| rsMatrixMultiply(rs_matrix3x3 *m, float2 in); | ||||
|  | ||||
| /** | ||||
|  * \overload | ||||
|  */ | ||||
| _RS_RUNTIME float2 __attribute__((overloadable)) | ||||
| rsMatrixMultiply(rs_matrix2x2 *m, float2 in); | ||||
| #else | ||||
| /** | ||||
|  * Multiply a vector by a matrix and return the result vector. | ||||
|  * API version 14+ | ||||
|  */ | ||||
| _RS_RUNTIME float4 __attribute__((overloadable)) | ||||
| rsMatrixMultiply(const rs_matrix4x4 *m, float4 in); | ||||
|  | ||||
| /** | ||||
|  * \overload | ||||
|  */ | ||||
| _RS_RUNTIME float4 __attribute__((overloadable)) | ||||
| rsMatrixMultiply(const rs_matrix4x4 *m, float3 in); | ||||
|  | ||||
| /** | ||||
|  * \overload | ||||
|  */ | ||||
| _RS_RUNTIME float4 __attribute__((overloadable)) | ||||
| rsMatrixMultiply(const rs_matrix4x4 *m, float2 in); | ||||
|  | ||||
| /** | ||||
|  * \overload | ||||
|  */ | ||||
| _RS_RUNTIME float3 __attribute__((overloadable)) | ||||
| rsMatrixMultiply(const rs_matrix3x3 *m, float3 in); | ||||
|  | ||||
| /** | ||||
|  * \overload | ||||
|  */ | ||||
| _RS_RUNTIME float3 __attribute__((overloadable)) | ||||
| rsMatrixMultiply(const rs_matrix3x3 *m, float2 in); | ||||
|  | ||||
| /** | ||||
|  * \overload | ||||
|  */ | ||||
| _RS_RUNTIME float2 __attribute__((overloadable)) | ||||
| rsMatrixMultiply(const rs_matrix2x2 *m, float2 in); | ||||
| #endif | ||||
|  | ||||
|  | ||||
| /** | ||||
|  * Returns true if the matrix was successfully inversed | ||||
|  * | ||||
|  * @param m | ||||
|  */ | ||||
| extern bool __attribute__((overloadable)) rsMatrixInverse(rs_matrix4x4 *m); | ||||
|  | ||||
| /** | ||||
|  * Returns true if the matrix was successfully inversed and transposed. | ||||
|  * | ||||
|  * @param m | ||||
|  */ | ||||
| extern bool __attribute__((overloadable)) rsMatrixInverseTranspose(rs_matrix4x4 *m); | ||||
|  | ||||
| /** | ||||
|  * Transpose the matrix m. | ||||
|  * | ||||
|  * @param m | ||||
|  */ | ||||
| extern void __attribute__((overloadable)) rsMatrixTranspose(rs_matrix4x4 *m); | ||||
| /** | ||||
|  * \overload | ||||
|  */ | ||||
| extern void __attribute__((overloadable)) rsMatrixTranspose(rs_matrix3x3 *m); | ||||
| /** | ||||
|  * \overload | ||||
|  */ | ||||
| extern void __attribute__((overloadable)) rsMatrixTranspose(rs_matrix2x2 *m); | ||||
|  | ||||
|  | ||||
| #endif | ||||
		Reference in New Issue
	
	Block a user