xref: /aosp_15_r20/frameworks/rs/rsScriptGroup2.cpp (revision e1eccf28f96817838ad6867f7f39d2351ec11f56)
1*e1eccf28SAndroid Build Coastguard Worker #include "rsScriptGroup2.h"
2*e1eccf28SAndroid Build Coastguard Worker 
3*e1eccf28SAndroid Build Coastguard Worker #include "rsContext.h"
4*e1eccf28SAndroid Build Coastguard Worker 
5*e1eccf28SAndroid Build Coastguard Worker namespace android {
6*e1eccf28SAndroid Build Coastguard Worker namespace renderscript {
7*e1eccf28SAndroid Build Coastguard Worker 
~ScriptGroup2()8*e1eccf28SAndroid Build Coastguard Worker ScriptGroup2::~ScriptGroup2() {
9*e1eccf28SAndroid Build Coastguard Worker     if (mRSC->mHal.funcs.scriptgroup.destroy) {
10*e1eccf28SAndroid Build Coastguard Worker         mRSC->mHal.funcs.scriptgroup.destroy(mRSC, this);
11*e1eccf28SAndroid Build Coastguard Worker     }
12*e1eccf28SAndroid Build Coastguard Worker }
13*e1eccf28SAndroid Build Coastguard Worker 
execute(Context * rsc)14*e1eccf28SAndroid Build Coastguard Worker void ScriptGroup2::execute(Context* rsc) {
15*e1eccf28SAndroid Build Coastguard Worker     if (rsc->mHal.funcs.scriptgroup.execute) {
16*e1eccf28SAndroid Build Coastguard Worker         rsc->mHal.funcs.scriptgroup.execute(rsc, this);
17*e1eccf28SAndroid Build Coastguard Worker     }
18*e1eccf28SAndroid Build Coastguard Worker }
19*e1eccf28SAndroid Build Coastguard Worker 
rsi_ScriptGroup2Create(Context * rsc,const char * name,size_t nameLength,const char * cacheDir,size_t cacheDirLength,RsClosure * closures,size_t numClosures)20*e1eccf28SAndroid Build Coastguard Worker RsScriptGroup2 rsi_ScriptGroup2Create(Context* rsc, const char* name,
21*e1eccf28SAndroid Build Coastguard Worker                                       size_t nameLength,
22*e1eccf28SAndroid Build Coastguard Worker                                       const char* cacheDir,
23*e1eccf28SAndroid Build Coastguard Worker                                       size_t cacheDirLength,
24*e1eccf28SAndroid Build Coastguard Worker                                       RsClosure* closures, size_t numClosures) {
25*e1eccf28SAndroid Build Coastguard Worker     ScriptGroup2* group = new ScriptGroup2(rsc, name, cacheDir,
26*e1eccf28SAndroid Build Coastguard Worker                                            (Closure**)closures, numClosures);
27*e1eccf28SAndroid Build Coastguard Worker 
28*e1eccf28SAndroid Build Coastguard Worker     // Create a device-specific implementation by calling the device driver
29*e1eccf28SAndroid Build Coastguard Worker     if (rsc->mHal.funcs.scriptgroup.init) {
30*e1eccf28SAndroid Build Coastguard Worker         rsc->mHal.funcs.scriptgroup.init(rsc, group);
31*e1eccf28SAndroid Build Coastguard Worker     }
32*e1eccf28SAndroid Build Coastguard Worker 
33*e1eccf28SAndroid Build Coastguard Worker     group->incUserRef();
34*e1eccf28SAndroid Build Coastguard Worker 
35*e1eccf28SAndroid Build Coastguard Worker     return group;
36*e1eccf28SAndroid Build Coastguard Worker }
37*e1eccf28SAndroid Build Coastguard Worker 
38*e1eccf28SAndroid Build Coastguard Worker }  // namespace renderscript
39*e1eccf28SAndroid Build Coastguard Worker }  // namespace android
40