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.content.Context; 20ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murrayimport android.content.res.Resources; 21ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murrayimport android.util.Log; 22ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray 23ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murrayclass ScriptIntrinsicBlurThunker extends ScriptIntrinsicBlur { 24ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray 25ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray android.renderscript.ScriptIntrinsicBlur mN; 26ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray 27ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray android.renderscript.ScriptIntrinsicBlur getNObj() { 28ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray return mN; 29ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray } 30ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray 31ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray protected ScriptIntrinsicBlurThunker(int id, RenderScript rs) { 32ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray super(id, rs); 33ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray } 34ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray 35ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray public static ScriptIntrinsicBlurThunker create(RenderScript rs, Element e) { 36ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray RenderScriptThunker rst = (RenderScriptThunker) rs; 37ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray ElementThunker et = (ElementThunker) e; 38ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray 39ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray ScriptIntrinsicBlurThunker blur = new ScriptIntrinsicBlurThunker(0, rs); 40d1107f953974cf7a6c8bdf43e898d2f1f74427e6Tim Murray try { 41d1107f953974cf7a6c8bdf43e898d2f1f74427e6Tim Murray blur.mN = android.renderscript.ScriptIntrinsicBlur.create(rst.mN, et.getNObj()); 42d1107f953974cf7a6c8bdf43e898d2f1f74427e6Tim Murray } catch (android.renderscript.RSRuntimeException exc) { 43d1107f953974cf7a6c8bdf43e898d2f1f74427e6Tim Murray throw ExceptionThunker.convertException(exc); 44d1107f953974cf7a6c8bdf43e898d2f1f74427e6Tim Murray } 45ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray return blur; 46ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray } 47ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray 48ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray public void setInput(Allocation ain) { 49ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray AllocationThunker aint = (AllocationThunker) ain; 50d1107f953974cf7a6c8bdf43e898d2f1f74427e6Tim Murray try { 51d1107f953974cf7a6c8bdf43e898d2f1f74427e6Tim Murray mN.setInput(aint.getNObj()); 52d1107f953974cf7a6c8bdf43e898d2f1f74427e6Tim Murray } catch (android.renderscript.RSRuntimeException e) { 53d1107f953974cf7a6c8bdf43e898d2f1f74427e6Tim Murray throw ExceptionThunker.convertException(e); 54d1107f953974cf7a6c8bdf43e898d2f1f74427e6Tim Murray } 55ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray } 56ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray 57ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray public void setRadius(float radius) { 58d1107f953974cf7a6c8bdf43e898d2f1f74427e6Tim Murray try { 59d1107f953974cf7a6c8bdf43e898d2f1f74427e6Tim Murray mN.setRadius(radius); 60d1107f953974cf7a6c8bdf43e898d2f1f74427e6Tim Murray } catch (android.renderscript.RSRuntimeException e) { 61d1107f953974cf7a6c8bdf43e898d2f1f74427e6Tim Murray throw ExceptionThunker.convertException(e); 62d1107f953974cf7a6c8bdf43e898d2f1f74427e6Tim Murray } 63ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray } 64ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray 65ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray public void forEach(Allocation aout) { 66ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray AllocationThunker aoutt = (AllocationThunker) aout; 67ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray if (aoutt != null) { 68d1107f953974cf7a6c8bdf43e898d2f1f74427e6Tim Murray try { 69d1107f953974cf7a6c8bdf43e898d2f1f74427e6Tim Murray mN.forEach(aoutt.getNObj()); 70d1107f953974cf7a6c8bdf43e898d2f1f74427e6Tim Murray } catch (android.renderscript.RSRuntimeException e) { 71d1107f953974cf7a6c8bdf43e898d2f1f74427e6Tim Murray throw ExceptionThunker.convertException(e); 72d1107f953974cf7a6c8bdf43e898d2f1f74427e6Tim Murray } 73ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray } 74ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray } 75ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray 76ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray public Script.KernelID getKernelID() { 77ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray Script.KernelID k = createKernelID(0, 2, null, null); 78d1107f953974cf7a6c8bdf43e898d2f1f74427e6Tim Murray try { 79d1107f953974cf7a6c8bdf43e898d2f1f74427e6Tim Murray k.mN = mN.getKernelID(); 80d1107f953974cf7a6c8bdf43e898d2f1f74427e6Tim Murray } catch (android.renderscript.RSRuntimeException e) { 81d1107f953974cf7a6c8bdf43e898d2f1f74427e6Tim Murray throw ExceptionThunker.convertException(e); 82d1107f953974cf7a6c8bdf43e898d2f1f74427e6Tim Murray } 83ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray return k; 84ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray } 85ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray 86ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray public Script.FieldID getFieldID_Input() { 87ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray Script.FieldID f = createFieldID(1, null); 88d1107f953974cf7a6c8bdf43e898d2f1f74427e6Tim Murray try { 89d1107f953974cf7a6c8bdf43e898d2f1f74427e6Tim Murray f.mN = mN.getFieldID_Input(); 90d1107f953974cf7a6c8bdf43e898d2f1f74427e6Tim Murray } catch (android.renderscript.RSRuntimeException e) { 91d1107f953974cf7a6c8bdf43e898d2f1f74427e6Tim Murray throw ExceptionThunker.convertException(e); 92d1107f953974cf7a6c8bdf43e898d2f1f74427e6Tim Murray } 93ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray return f; 94ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray } 95ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray} 96ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray 97