11ffd86b448d78366190c540f98f8b6d641cdb6cfYang Ni#include "rsScriptGroup2.h" 21ffd86b448d78366190c540f98f8b6d641cdb6cfYang Ni 31ffd86b448d78366190c540f98f8b6d641cdb6cfYang Ni#include "rsContext.h" 41ffd86b448d78366190c540f98f8b6d641cdb6cfYang Ni 51ffd86b448d78366190c540f98f8b6d641cdb6cfYang Ninamespace android { 61ffd86b448d78366190c540f98f8b6d641cdb6cfYang Ninamespace renderscript { 71ffd86b448d78366190c540f98f8b6d641cdb6cfYang Ni 8bd0af2d161e36e52e6782ccb2d15dd5a36467704Yang NiScriptGroup2::~ScriptGroup2() { 9bd0af2d161e36e52e6782ccb2d15dd5a36467704Yang Ni if (mRSC->mHal.funcs.scriptgroup.destroy) { 10bd0af2d161e36e52e6782ccb2d15dd5a36467704Yang Ni mRSC->mHal.funcs.scriptgroup.destroy(mRSC, this); 11bd0af2d161e36e52e6782ccb2d15dd5a36467704Yang Ni } 12bd0af2d161e36e52e6782ccb2d15dd5a36467704Yang Ni} 13bd0af2d161e36e52e6782ccb2d15dd5a36467704Yang Ni 141ffd86b448d78366190c540f98f8b6d641cdb6cfYang Nivoid ScriptGroup2::execute(Context* rsc) { 15eb9aa675754c49f613c6ad71d41472b30f38b007Yang Ni if (rsc->mHal.funcs.scriptgroup.execute) { 16eb9aa675754c49f613c6ad71d41472b30f38b007Yang Ni rsc->mHal.funcs.scriptgroup.execute(rsc, this); 17eb9aa675754c49f613c6ad71d41472b30f38b007Yang Ni } 181ffd86b448d78366190c540f98f8b6d641cdb6cfYang Ni} 191ffd86b448d78366190c540f98f8b6d641cdb6cfYang Ni 208b94222cc8ea83c780c98b22dd1921f392a2bcf6Yang NiRsScriptGroup2 rsi_ScriptGroup2Create(Context* rsc, const char* name, 218b94222cc8ea83c780c98b22dd1921f392a2bcf6Yang Ni size_t nameLength, 228b94222cc8ea83c780c98b22dd1921f392a2bcf6Yang Ni const char* cacheDir, 23da0f069871343119251d6b0586be356dc2146a62Yang Ni size_t cacheDirLength, 24da0f069871343119251d6b0586be356dc2146a62Yang Ni RsClosure* closures, size_t numClosures) { 258b94222cc8ea83c780c98b22dd1921f392a2bcf6Yang Ni ScriptGroup2* group = new ScriptGroup2(rsc, name, cacheDir, 268b94222cc8ea83c780c98b22dd1921f392a2bcf6Yang Ni (Closure**)closures, numClosures); 271ffd86b448d78366190c540f98f8b6d641cdb6cfYang Ni 28eb9aa675754c49f613c6ad71d41472b30f38b007Yang Ni // Create a device-specific implementation by calling the device driver 29eb9aa675754c49f613c6ad71d41472b30f38b007Yang Ni if (rsc->mHal.funcs.scriptgroup.init) { 30eb9aa675754c49f613c6ad71d41472b30f38b007Yang Ni rsc->mHal.funcs.scriptgroup.init(rsc, group); 31eb9aa675754c49f613c6ad71d41472b30f38b007Yang Ni } 321ffd86b448d78366190c540f98f8b6d641cdb6cfYang Ni 33bd0af2d161e36e52e6782ccb2d15dd5a36467704Yang Ni group->incUserRef(); 34bd0af2d161e36e52e6782ccb2d15dd5a36467704Yang Ni 35eb9aa675754c49f613c6ad71d41472b30f38b007Yang Ni return group; 361ffd86b448d78366190c540f98f8b6d641cdb6cfYang Ni} 371ffd86b448d78366190c540f98f8b6d641cdb6cfYang Ni 381ffd86b448d78366190c540f98f8b6d641cdb6cfYang Ni} // namespace renderscript 391ffd86b448d78366190c540f98f8b6d641cdb6cfYang Ni} // namespace android 40