blob: 551919526696f5a5183c22125d1a3fb79c9ccf80 [file] [log] [blame]
Yang Ni1ffd86b2015-01-07 09:16:40 -08001#include "rsScriptGroup2.h"
2
3#include "rsContext.h"
4
5namespace android {
6namespace renderscript {
7
Yang Nibd0af2d2015-03-23 17:14:58 -07008ScriptGroup2::~ScriptGroup2() {
9 if (mRSC->mHal.funcs.scriptgroup.destroy) {
10 mRSC->mHal.funcs.scriptgroup.destroy(mRSC, this);
11 }
12}
13
Yang Ni1ffd86b2015-01-07 09:16:40 -080014void ScriptGroup2::execute(Context* rsc) {
Yang Nieb9aa672015-01-27 14:32:25 -080015 if (rsc->mHal.funcs.scriptgroup.execute) {
16 rsc->mHal.funcs.scriptgroup.execute(rsc, this);
17 }
Yang Ni1ffd86b2015-01-07 09:16:40 -080018}
19
Yang Ni8b942222015-04-02 17:48:28 -070020RsScriptGroup2 rsi_ScriptGroup2Create(Context* rsc, const char* name,
21 size_t nameLength,
22 const char* cacheDir,
Yang Nida0f0692015-01-12 13:03:40 -080023 size_t cacheDirLength,
24 RsClosure* closures, size_t numClosures) {
Yang Ni8b942222015-04-02 17:48:28 -070025 ScriptGroup2* group = new ScriptGroup2(rsc, name, cacheDir,
26 (Closure**)closures, numClosures);
Yang Ni1ffd86b2015-01-07 09:16:40 -080027
Yang Nieb9aa672015-01-27 14:32:25 -080028 // Create a device-specific implementation by calling the device driver
29 if (rsc->mHal.funcs.scriptgroup.init) {
30 rsc->mHal.funcs.scriptgroup.init(rsc, group);
31 }
Yang Ni1ffd86b2015-01-07 09:16:40 -080032
Yang Nibd0af2d2015-03-23 17:14:58 -070033 group->incUserRef();
34
Yang Nieb9aa672015-01-27 14:32:25 -080035 return group;
Yang Ni1ffd86b2015-01-07 09:16:40 -080036}
37
38} // namespace renderscript
39} // namespace android