Runtime support for invocables in ScriptGroups This also includes support for InvokeID Change-Id: I5b59df166ea30b309b8dd9623825ac0e72d03856
diff --git a/rsScript.h b/rsScript.h index 1ce5b41..2212032 100644 --- a/rsScript.h +++ b/rsScript.h
@@ -32,30 +32,44 @@ class ProgramStore; #endif -class ScriptKernelID : public ObjectBase { +class IDBase : public ObjectBase { public: - ScriptKernelID(Context *rsc, Script *s, int slot, int sig); - virtual ~ScriptKernelID(); + IDBase(Context *rsc, Script *s, int slot) : + ObjectBase(rsc), mScript(s), mSlot(slot) {} + virtual ~IDBase() {} - virtual void serialize(Context *rsc, OStream *stream) const; + virtual void serialize(Context *rsc, OStream *stream) const {} virtual RsA3DClassID getClassId() const; Script *mScript; int mSlot; +}; + +class ScriptKernelID : public IDBase { +public: + ScriptKernelID(Context *rsc, Script *s, int slot, int sig); + virtual ~ScriptKernelID() {} + + virtual RsA3DClassID getClassId() const; + bool mHasKernelInput; bool mHasKernelOutput; }; -class ScriptFieldID : public ObjectBase { +class ScriptInvokeID : public IDBase { +public: + ScriptInvokeID(Context *rsc, Script *s, int slot); + virtual ~ScriptInvokeID() {} + + virtual RsA3DClassID getClassId() const; +}; + +class ScriptFieldID : public IDBase { public: ScriptFieldID(Context *rsc, Script *s, int slot); - virtual ~ScriptFieldID(); + virtual ~ScriptFieldID() {} - virtual void serialize(Context *rsc, OStream *stream) const; virtual RsA3DClassID getClassId() const; - - Script *mScript; - int mSlot; }; class Script : public ObjectBase {