diff options
Diffstat (limited to '15/renderscript/include/rs_matrix.rsh')
-rw-r--r-- | 15/renderscript/include/rs_matrix.rsh | 378 |
1 files changed, 0 insertions, 378 deletions
diff --git a/15/renderscript/include/rs_matrix.rsh b/15/renderscript/include/rs_matrix.rsh deleted file mode 100644 index ebff7f4..0000000 --- a/15/renderscript/include/rs_matrix.rsh +++ /dev/null @@ -1,378 +0,0 @@ -/* - * 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 |