rsMatrix2x2.h revision 1bb2eed69caa28cf8198d58db7d9134cc2f563f5
187fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams/* 2411f5996bccf88d5d2f8d1f003d39a8d76365244Stephen Hines * Copyright (C) 2011-2012 The Android Open Source Project 387fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams * 487fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams * Licensed under the Apache License, Version 2.0 (the "License"); 587fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams * you may not use this file except in compliance with the License. 687fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams * You may obtain a copy of the License at 787fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams * 887fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams * http://www.apache.org/licenses/LICENSE-2.0 987fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams * 1087fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams * Unless required by applicable law or agreed to in writing, software 1187fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams * distributed under the License is distributed on an "AS IS" BASIS, 1287fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1387fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams * See the License for the specific language governing permissions and 1487fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams * limitations under the License. 1587fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams */ 1687fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 1787fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams#ifndef ANDROID_RS_MATRIX_2x2_H 1887fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams#define ANDROID_RS_MATRIX_2x2_H 1987fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 2087fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams#include "rsType.h" 2187fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 2287fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 2387fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams// --------------------------------------------------------------------------- 2487fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Samsnamespace android { 2587fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Samsnamespace renderscript { 2687fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 2787fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Samsstruct Matrix2x2 : public rs_matrix2x2 { 281bb2eed69caa28cf8198d58db7d9134cc2f563f5Jean-Luc Brouillet inline float get(uint32_t col, uint32_t row) const { 291bb2eed69caa28cf8198d58db7d9134cc2f563f5Jean-Luc Brouillet return m[col*2 + row]; 3087fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams } 3187fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 321bb2eed69caa28cf8198d58db7d9134cc2f563f5Jean-Luc Brouillet inline void set(uint32_t col, uint32_t row, float v) { 331bb2eed69caa28cf8198d58db7d9134cc2f563f5Jean-Luc Brouillet m[col*2 + row] = v; 3487fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams } 3587fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 3687fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams void loadIdentity(); 3787fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams void load(const float *); 3887fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams void load(const rs_matrix2x2 *); 3987fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 4087fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams void loadMultiply(const rs_matrix2x2 *lhs, const rs_matrix2x2 *rhs); 4187fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 4287fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams void transpose(); 4387fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 4487fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams void multiply(const rs_matrix2x2 *rhs) { 451bb2eed69caa28cf8198d58db7d9134cc2f563f5Jean-Luc Brouillet loadMultiply(this, rhs); 4687fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams } 4787fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams}; 4887fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 4987fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams} 5087fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams} 5187fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 52411f5996bccf88d5d2f8d1f003d39a8d76365244Stephen Hines#endif // ANDROID_RS_MATRIX_2x2_H 53