rsScriptGroup2.h revision 1ffd86b448d78366190c540f98f8b6d641cdb6cf
11ffd86b448d78366190c540f98f8b6d641cdb6cfYang Ni#ifndef ANDROID_RENDERSCRIPT_SCRIPTGROUP2_H_
21ffd86b448d78366190c540f98f8b6d641cdb6cfYang Ni#define ANDROID_RENDERSCRIPT_SCRIPTGROUP2_H_
31ffd86b448d78366190c540f98f8b6d641cdb6cfYang Ni
41ffd86b448d78366190c540f98f8b6d641cdb6cfYang Ni#include "rsScriptGroupBase.h"
51ffd86b448d78366190c540f98f8b6d641cdb6cfYang Ni
61ffd86b448d78366190c540f98f8b6d641cdb6cfYang Ni#include <list>
71ffd86b448d78366190c540f98f8b6d641cdb6cfYang Ni
81ffd86b448d78366190c540f98f8b6d641cdb6cfYang Ninamespace android {
91ffd86b448d78366190c540f98f8b6d641cdb6cfYang Ninamespace renderscript {
101ffd86b448d78366190c540f98f8b6d641cdb6cfYang Ni
111ffd86b448d78366190c540f98f8b6d641cdb6cfYang Niclass Closure;
121ffd86b448d78366190c540f98f8b6d641cdb6cfYang Niclass Context;
131ffd86b448d78366190c540f98f8b6d641cdb6cfYang Ni
141ffd86b448d78366190c540f98f8b6d641cdb6cfYang Niclass ScriptGroup2 : public ScriptGroupBase {
151ffd86b448d78366190c540f98f8b6d641cdb6cfYang Ni public:
161ffd86b448d78366190c540f98f8b6d641cdb6cfYang Ni  /*
171ffd86b448d78366190c540f98f8b6d641cdb6cfYang Ni    TODO:
181ffd86b448d78366190c540f98f8b6d641cdb6cfYang Ni    Inputs and outputs are set and retrieved in Java runtime.
191ffd86b448d78366190c540f98f8b6d641cdb6cfYang Ni    They are opaque in the C++ runtime.
201ffd86b448d78366190c540f98f8b6d641cdb6cfYang Ni    For better compiler optimizations (of a script group), we need to include
211ffd86b448d78366190c540f98f8b6d641cdb6cfYang Ni    input and output information in the C++ runtime.
221ffd86b448d78366190c540f98f8b6d641cdb6cfYang Ni   */
231ffd86b448d78366190c540f98f8b6d641cdb6cfYang Ni  ScriptGroup2(Context* rsc, Closure** closures, size_t numClosures) :
241ffd86b448d78366190c540f98f8b6d641cdb6cfYang Ni      ScriptGroupBase(rsc), mClosures(closures, closures + numClosures) {}
251ffd86b448d78366190c540f98f8b6d641cdb6cfYang Ni  virtual ~ScriptGroup2() {}
261ffd86b448d78366190c540f98f8b6d641cdb6cfYang Ni
271ffd86b448d78366190c540f98f8b6d641cdb6cfYang Ni  virtual SG_API_Version getApiVersion() const { return SG_V2; }
281ffd86b448d78366190c540f98f8b6d641cdb6cfYang Ni  virtual void execute(Context* rsc);
291ffd86b448d78366190c540f98f8b6d641cdb6cfYang Ni
301ffd86b448d78366190c540f98f8b6d641cdb6cfYang Ni  std::list<Closure*> mClosures;
311ffd86b448d78366190c540f98f8b6d641cdb6cfYang Ni};
321ffd86b448d78366190c540f98f8b6d641cdb6cfYang Ni
331ffd86b448d78366190c540f98f8b6d641cdb6cfYang Ni}  // namespace renderscript
341ffd86b448d78366190c540f98f8b6d641cdb6cfYang Ni}  // namespace android
351ffd86b448d78366190c540f98f8b6d641cdb6cfYang Ni
361ffd86b448d78366190c540f98f8b6d641cdb6cfYang Ni#endif  // ANDROID_RENDERSCRIPT_SCRIPTGROUP2_H_
37