blob: d4a64a08cc3fce426a4a59b9c72f62f9b4e1a781 [file] [log] [blame]
Yang Ni1ffd86b2015-01-07 09:16:40 -08001#ifndef ANDROID_RENDERSCRIPT_SCRIPTGROUP2_H_
2#define ANDROID_RENDERSCRIPT_SCRIPTGROUP2_H_
3
4#include "rsScriptGroupBase.h"
5
6#include <list>
Yang Nida0f0692015-01-12 13:03:40 -08007#include <string>
Yang Ni1ffd86b2015-01-07 09:16:40 -08008
9namespace android {
10namespace renderscript {
11
12class Closure;
13class Context;
14
15class ScriptGroup2 : public ScriptGroupBase {
16 public:
Yang Nieb9aa672015-01-27 14:32:25 -080017 /*
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() {}
Yang Ni1ffd86b2015-01-07 09:16:40 -080029
Yang Nieb9aa672015-01-27 14:32:25 -080030 virtual SG_API_Version getApiVersion() const { return SG_V2; }
31 virtual void execute(Context* rsc);
Yang Ni1ffd86b2015-01-07 09:16:40 -080032
Yang Nieb9aa672015-01-27 14:32:25 -080033 const std::string mCacheDir;
34 std::list<Closure*> mClosures;
Yang Ni1ffd86b2015-01-07 09:16:40 -080035};
36
37} // namespace renderscript
38} // namespace android
39
40#endif // ANDROID_RENDERSCRIPT_SCRIPTGROUP2_H_