diff options
author | Yang Ni <yangni@google.com> | 2015-01-23 17:16:02 -0800 |
---|---|---|
committer | Yang Ni <yangni@google.com> | 2015-02-04 16:24:48 -0800 |
commit | be392ad35e29b17ed54fdbbbb8dd3e80fc1022b9 (patch) | |
tree | 6737ba3025bb6113bb117099164ea8fcc5cce3fa /rs/java/android/renderscript/Script.java | |
parent | 240e8743977d1a1e7a43ff42e0d52148db10cda8 (diff) |
Adds invocable functions to ScriptGroup
This also includes InvokeID support
Change-Id: I5b59df166ea30b309b8dd9623825ac0e72d03856
Diffstat (limited to 'rs/java/android/renderscript/Script.java')
-rw-r--r-- | rs/java/android/renderscript/Script.java | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/rs/java/android/renderscript/Script.java b/rs/java/android/renderscript/Script.java index eb1687a37a49..d35213057eef 100644 --- a/rs/java/android/renderscript/Script.java +++ b/rs/java/android/renderscript/Script.java @@ -66,6 +66,46 @@ public class Script extends BaseObj { } /** + * @hide Pending API review + * InvokeID is an identifier for an invoke function. It is used + * as an identifier for ScriptGroup creation. + * + * This class should not be directly created. Instead use the method in the + * reflected or intrinsic code "getInvokeID_funcname()". + * + */ + public static final class InvokeID extends BaseObj { + Script mScript; + int mSlot; + InvokeID(long id, RenderScript rs, Script s, int slot) { + super(id, rs); + mScript = s; + mSlot = slot; + } + } + + private final SparseArray<InvokeID> mIIDs = new SparseArray<InvokeID>(); + /** + * @hide Pending API review + * Only to be used by generated reflected classes. + */ + protected InvokeID createInvokeID(int slot) { + InvokeID i = mIIDs.get(slot); + if (i != null) { + return i; + } + + long id = mRS.nScriptInvokeIDCreate(getID(mRS), slot); + if (id == 0) { + throw new RSDriverException("Failed to create KernelID"); + } + + i = new InvokeID(id, mRS, this, slot); + mIIDs.put(slot, i); + return i; + } + + /** * FieldID is an identifier for a Script + exported field pair. It is used * as an identifier for ScriptGroup creation. * |