1ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray/* 2ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray * Copyright (C) 2013 The Android Open Source Project 3ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray * 4ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray * Licensed under the Apache License, Version 2.0 (the "License"); 5ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray * you may not use this file except in compliance with the License. 6ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray * You may obtain a copy of the License at 7ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray * 8ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray * http://www.apache.org/licenses/LICENSE-2.0 9ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray * 10ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray * Unless required by applicable law or agreed to in writing, software 11ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray * distributed under the License is distributed on an "AS IS" BASIS, 12ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray * See the License for the specific language governing permissions and 14ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray * limitations under the License. 15ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray */ 16ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray 17ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murraypackage android.support.v8.renderscript; 18ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray 19ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murrayimport android.util.Log; 20ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray 21ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murrayclass ScriptIntrinsicColorMatrixThunker extends ScriptIntrinsicColorMatrix { 22ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray android.renderscript.ScriptIntrinsicColorMatrix mN; 23ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray 24ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray android.renderscript.ScriptIntrinsicColorMatrix getNObj() { 25ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray return mN; 26ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray } 27ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray 28ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray private ScriptIntrinsicColorMatrixThunker(int id, RenderScript rs) { 29ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray super(id, rs); 30ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray } 31ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray 32ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray public static ScriptIntrinsicColorMatrixThunker create(RenderScript rs, Element e) { 33ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray RenderScriptThunker rst = (RenderScriptThunker) rs; 34ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray ElementThunker et = (ElementThunker)e; 35ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray 36ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray ScriptIntrinsicColorMatrixThunker cm = new ScriptIntrinsicColorMatrixThunker(0, rs); 37d1107f953974cf7a6c8bdf43e898d2f1f74427e6Tim Murray try { 38d1107f953974cf7a6c8bdf43e898d2f1f74427e6Tim Murray cm.mN = android.renderscript.ScriptIntrinsicColorMatrix.create(rst.mN, et.getNObj()); 39d1107f953974cf7a6c8bdf43e898d2f1f74427e6Tim Murray } catch (android.renderscript.RSRuntimeException exc) { 40d1107f953974cf7a6c8bdf43e898d2f1f74427e6Tim Murray throw ExceptionThunker.convertException(exc); 41d1107f953974cf7a6c8bdf43e898d2f1f74427e6Tim Murray } 42ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray return cm; 43ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray 44ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray } 45ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray 46ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray public void setColorMatrix(Matrix4f m) { 47d1107f953974cf7a6c8bdf43e898d2f1f74427e6Tim Murray try { 48d1107f953974cf7a6c8bdf43e898d2f1f74427e6Tim Murray mN.setColorMatrix(new android.renderscript.Matrix4f(m.getArray())); 49d1107f953974cf7a6c8bdf43e898d2f1f74427e6Tim Murray } catch (android.renderscript.RSRuntimeException e) { 50d1107f953974cf7a6c8bdf43e898d2f1f74427e6Tim Murray throw ExceptionThunker.convertException(e); 51d1107f953974cf7a6c8bdf43e898d2f1f74427e6Tim Murray } 52ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray } 53ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray 54ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray public void setColorMatrix(Matrix3f m) { 55d1107f953974cf7a6c8bdf43e898d2f1f74427e6Tim Murray try { 56d1107f953974cf7a6c8bdf43e898d2f1f74427e6Tim Murray mN.setColorMatrix(new android.renderscript.Matrix3f(m.getArray())); 57d1107f953974cf7a6c8bdf43e898d2f1f74427e6Tim Murray } catch (android.renderscript.RSRuntimeException e) { 58d1107f953974cf7a6c8bdf43e898d2f1f74427e6Tim Murray throw ExceptionThunker.convertException(e); 59d1107f953974cf7a6c8bdf43e898d2f1f74427e6Tim Murray } 60ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray } 61ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray 62ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray public void setGreyscale() { 63d1107f953974cf7a6c8bdf43e898d2f1f74427e6Tim Murray try { 64d1107f953974cf7a6c8bdf43e898d2f1f74427e6Tim Murray mN.setGreyscale(); 65d1107f953974cf7a6c8bdf43e898d2f1f74427e6Tim Murray } catch (android.renderscript.RSRuntimeException e) { 66d1107f953974cf7a6c8bdf43e898d2f1f74427e6Tim Murray throw ExceptionThunker.convertException(e); 67d1107f953974cf7a6c8bdf43e898d2f1f74427e6Tim Murray } 68ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray } 69ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray 70ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray public void setYUVtoRGB() { 71d1107f953974cf7a6c8bdf43e898d2f1f74427e6Tim Murray try { 72d1107f953974cf7a6c8bdf43e898d2f1f74427e6Tim Murray mN.setYUVtoRGB(); 73d1107f953974cf7a6c8bdf43e898d2f1f74427e6Tim Murray } catch (android.renderscript.RSRuntimeException e) { 74d1107f953974cf7a6c8bdf43e898d2f1f74427e6Tim Murray throw ExceptionThunker.convertException(e); 75d1107f953974cf7a6c8bdf43e898d2f1f74427e6Tim Murray } 76ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray } 77ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray 78ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray public void setRGBtoYUV() { 79d1107f953974cf7a6c8bdf43e898d2f1f74427e6Tim Murray try { 80d1107f953974cf7a6c8bdf43e898d2f1f74427e6Tim Murray mN.setRGBtoYUV(); 81d1107f953974cf7a6c8bdf43e898d2f1f74427e6Tim Murray } catch (android.renderscript.RSRuntimeException e) { 82d1107f953974cf7a6c8bdf43e898d2f1f74427e6Tim Murray throw ExceptionThunker.convertException(e); 83d1107f953974cf7a6c8bdf43e898d2f1f74427e6Tim Murray } 84ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray } 85ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray 86ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray 87ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray public void forEach(Allocation ain, Allocation aout) { 88ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray AllocationThunker aint = (AllocationThunker)ain; 89ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray AllocationThunker aoutt = (AllocationThunker)aout; 90d1107f953974cf7a6c8bdf43e898d2f1f74427e6Tim Murray try { 91d1107f953974cf7a6c8bdf43e898d2f1f74427e6Tim Murray mN.forEach(aint.getNObj(), aoutt.getNObj()); 92d1107f953974cf7a6c8bdf43e898d2f1f74427e6Tim Murray } catch (android.renderscript.RSRuntimeException e) { 93d1107f953974cf7a6c8bdf43e898d2f1f74427e6Tim Murray throw ExceptionThunker.convertException(e); 94d1107f953974cf7a6c8bdf43e898d2f1f74427e6Tim Murray } 95ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray } 96ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray 97ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray public Script.KernelID getKernelID() { 98ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray Script.KernelID k = createKernelID(0, 3, null, null); 99d1107f953974cf7a6c8bdf43e898d2f1f74427e6Tim Murray try { 100d1107f953974cf7a6c8bdf43e898d2f1f74427e6Tim Murray k.mN = mN.getKernelID(); 101d1107f953974cf7a6c8bdf43e898d2f1f74427e6Tim Murray } catch (android.renderscript.RSRuntimeException e) { 102d1107f953974cf7a6c8bdf43e898d2f1f74427e6Tim Murray throw ExceptionThunker.convertException(e); 103d1107f953974cf7a6c8bdf43e898d2f1f74427e6Tim Murray } 104ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray return k; 105ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray } 106ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray 107ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray} 108ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray 109