diff options
Diffstat (limited to 'rsScript.cpp')
-rw-r--r-- | rsScript.cpp | 31 |
1 files changed, 19 insertions, 12 deletions
diff --git a/rsScript.cpp b/rsScript.cpp index ea1b3ac9..a4fa1966 100644 --- a/rsScript.cpp +++ b/rsScript.cpp @@ -187,23 +187,13 @@ void rsi_ScriptSetTimeZone(Context * rsc, RsScript vs, const char * timeZone, si free(tz); } -void rsi_ScriptForEach(Context *rsc, RsScript vs, uint32_t slot, - RsAllocation vain, RsAllocation vaout, - const void *params, size_t paramLen, - const RsScriptCall *sc, size_t scLen) { - Script *s = static_cast<Script *>(vs); - s->runForEach(rsc, slot, - static_cast<const Allocation *>(vain), static_cast<Allocation *>(vaout), - params, paramLen, sc); - -} - void rsi_ScriptForEachMulti(Context *rsc, RsScript vs, uint32_t slot, RsAllocation *vains, size_t inLen, RsAllocation vaout, const void *params, size_t paramLen, const RsScriptCall *sc, size_t scLen) { - Script *s = static_cast<Script *>(vs); + + Script *s = static_cast<Script *>(vs); Allocation **ains = (Allocation**)(vains); s->runForEach(rsc, slot, @@ -212,6 +202,23 @@ void rsi_ScriptForEachMulti(Context *rsc, RsScript vs, uint32_t slot, } +void rsi_ScriptForEach(Context *rsc, RsScript vs, uint32_t slot, + RsAllocation vain, RsAllocation vaout, + const void *params, size_t paramLen, + const RsScriptCall *sc, size_t scLen) { + + if (vain == NULL) { + rsi_ScriptForEachMulti(rsc, vs, slot, NULL, 0, vaout, params, paramLen, + sc, scLen); + } else { + RsAllocation ains[1] = {vain}; + + rsi_ScriptForEachMulti(rsc, vs, slot, ains, + sizeof(ains) / sizeof(RsAllocation), vaout, + params, paramLen, sc, scLen); + } +} + void rsi_ScriptInvoke(Context *rsc, RsScript vs, uint32_t slot) { Script *s = static_cast<Script *>(vs); s->Invoke(rsc, slot, NULL, 0); |