rsScriptGroup2.h revision da0f069871343119251d6b0586be356dc2146a62
1#ifndef ANDROID_RENDERSCRIPT_SCRIPTGROUP2_H_
2#define ANDROID_RENDERSCRIPT_SCRIPTGROUP2_H_
3
4#include "rsScriptGroupBase.h"
5
6#include <list>
7#include <string>
8
9namespace android {
10namespace renderscript {
11
12class Closure;
13class Context;
14
15class ScriptGroup2 : public ScriptGroupBase {
16 public:
17  /*
18    TODO:
19    Inputs and outputs are set and retrieved in Java runtime.
20    They are opaque in the C++ runtime.
21    For better compiler optimizations (of a script group), we need to include
22    input and output information in the C++ runtime.
23   */
24  ScriptGroup2(Context* rsc, const char* cacheDir, Closure** closures,
25               size_t numClosures) :
26      ScriptGroupBase(rsc), mCacheDir(cacheDir),
27      mClosures(closures, closures + numClosures) {}
28  virtual ~ScriptGroup2() {}
29
30  virtual SG_API_Version getApiVersion() const { return SG_V2; }
31  virtual void execute(Context* rsc);
32
33  const std::string mCacheDir;
34  std::list<Closure*> mClosures;
35};
36
37}  // namespace renderscript
38}  // namespace android
39
40#endif  // ANDROID_RENDERSCRIPT_SCRIPTGROUP2_H_
41