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