rsScriptGroup2.h revision eb9aa675754c49f613c6ad71d41472b30f38b007
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> 7da0f069871343119251d6b0586be356dc2146a62Yang Ni#include <string> 81ffd86b448d78366190c540f98f8b6d641cdb6cfYang Ni 91ffd86b448d78366190c540f98f8b6d641cdb6cfYang Ninamespace android { 101ffd86b448d78366190c540f98f8b6d641cdb6cfYang Ninamespace renderscript { 111ffd86b448d78366190c540f98f8b6d641cdb6cfYang Ni 121ffd86b448d78366190c540f98f8b6d641cdb6cfYang Niclass Closure; 131ffd86b448d78366190c540f98f8b6d641cdb6cfYang Niclass Context; 141ffd86b448d78366190c540f98f8b6d641cdb6cfYang Ni 151ffd86b448d78366190c540f98f8b6d641cdb6cfYang Niclass ScriptGroup2 : public ScriptGroupBase { 161ffd86b448d78366190c540f98f8b6d641cdb6cfYang Ni public: 17eb9aa675754c49f613c6ad71d41472b30f38b007Yang Ni /* 18eb9aa675754c49f613c6ad71d41472b30f38b007Yang Ni TODO: 19eb9aa675754c49f613c6ad71d41472b30f38b007Yang Ni Inputs and outputs are set and retrieved in Java runtime. 20eb9aa675754c49f613c6ad71d41472b30f38b007Yang Ni They are opaque in the C++ runtime. 21eb9aa675754c49f613c6ad71d41472b30f38b007Yang Ni For better compiler optimizations (of a script group), we need to include 22eb9aa675754c49f613c6ad71d41472b30f38b007Yang Ni input and output information in the C++ runtime. 23eb9aa675754c49f613c6ad71d41472b30f38b007Yang Ni */ 24eb9aa675754c49f613c6ad71d41472b30f38b007Yang Ni ScriptGroup2(Context* rsc, const char* cacheDir, Closure** closures, 25eb9aa675754c49f613c6ad71d41472b30f38b007Yang Ni size_t numClosures) : 26eb9aa675754c49f613c6ad71d41472b30f38b007Yang Ni ScriptGroupBase(rsc), mCacheDir(cacheDir), 27eb9aa675754c49f613c6ad71d41472b30f38b007Yang Ni mClosures(closures, closures + numClosures) {} 28eb9aa675754c49f613c6ad71d41472b30f38b007Yang Ni virtual ~ScriptGroup2() {} 29eb9aa675754c49f613c6ad71d41472b30f38b007Yang Ni 30eb9aa675754c49f613c6ad71d41472b30f38b007Yang Ni virtual SG_API_Version getApiVersion() const { return SG_V2; } 31eb9aa675754c49f613c6ad71d41472b30f38b007Yang Ni virtual void execute(Context* rsc); 32eb9aa675754c49f613c6ad71d41472b30f38b007Yang Ni 33eb9aa675754c49f613c6ad71d41472b30f38b007Yang Ni const std::string mCacheDir; 34eb9aa675754c49f613c6ad71d41472b30f38b007Yang Ni std::list<Closure*> mClosures; 351ffd86b448d78366190c540f98f8b6d641cdb6cfYang Ni}; 361ffd86b448d78366190c540f98f8b6d641cdb6cfYang Ni 371ffd86b448d78366190c540f98f8b6d641cdb6cfYang Ni} // namespace renderscript 381ffd86b448d78366190c540f98f8b6d641cdb6cfYang Ni} // namespace android 391ffd86b448d78366190c540f98f8b6d641cdb6cfYang Ni 401ffd86b448d78366190c540f98f8b6d641cdb6cfYang Ni#endif // ANDROID_RENDERSCRIPT_SCRIPTGROUP2_H_ 41