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