1bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams/*
22980f07d3dbbca727e8efe24ace7e7928a935648Stephen Hines * Copyright (C) 2011-2012 The Android Open Source Project
3bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams *
4bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams * Licensed under the Apache License, Version 2.0 (the "License");
5bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams * you may not use this file except in compliance with the License.
6bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams * You may obtain a copy of the License at
7bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams *
8bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams *      http://www.apache.org/licenses/LICENSE-2.0
9bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams *
10bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams * Unless required by applicable law or agreed to in writing, software
11bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams * distributed under the License is distributed on an "AS IS" BASIS,
12bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams * See the License for the specific language governing permissions and
14bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams * limitations under the License.
15bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams */
16bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams
17bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams#ifndef RSD_BCC_H
18bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams#define RSD_BCC_H
19bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams
20bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams#include <rs_hal.h>
2187fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams#include <rsRuntime.h>
22bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams
23bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Samsbool rsdScriptInit(const android::renderscript::Context *, android::renderscript::ScriptC *,
24bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams                   char const *resName, char const *cacheDir,
2587fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams                   uint8_t const *bitcode, size_t bitcodeSize, uint32_t flags);
268eaba4fee0c7b5325742c87187622fdff51d5effJason Samsbool rsdInitIntrinsic(const android::renderscript::Context *rsc,
278eaba4fee0c7b5325742c87187622fdff51d5effJason Sams                      android::renderscript::Script *s,
2841d6c769f5fa21da3cbc116af95d88949a4a5c76Stephen Hines                      RsScriptIntrinsicID iid,
298eaba4fee0c7b5325742c87187622fdff51d5effJason Sams                      android::renderscript::Element *e);
308eaba4fee0c7b5325742c87187622fdff51d5effJason Sams
31bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Samsvoid rsdScriptInvokeFunction(const android::renderscript::Context *dc,
32cdfdb8f2cdf4668c476cac842212892b2505ff3fJason Sams                             android::renderscript::Script *script,
33bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams                             uint32_t slot,
34bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams                             const void *params,
35bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams                             size_t paramLength);
36cdfdb8f2cdf4668c476cac842212892b2505ff3fJason Sams
37cdfdb8f2cdf4668c476cac842212892b2505ff3fJason Samsvoid rsdScriptInvokeForEach(const android::renderscript::Context *rsc,
38cdfdb8f2cdf4668c476cac842212892b2505ff3fJason Sams                            android::renderscript::Script *s,
3935e429ebf817130d8590d11d441a77aa697bd7d4Jason Sams                            uint32_t slot,
40cdfdb8f2cdf4668c476cac842212892b2505ff3fJason Sams                            const android::renderscript::Allocation * ain,
41cdfdb8f2cdf4668c476cac842212892b2505ff3fJason Sams                            android::renderscript::Allocation * aout,
42cdfdb8f2cdf4668c476cac842212892b2505ff3fJason Sams                            const void * usr,
43099bc262f862cdeb547cf8a78fe9e0e92560f437Tim Murray                            size_t usrLen,
44cdfdb8f2cdf4668c476cac842212892b2505ff3fJason Sams                            const RsScriptCall *sc);
45cdfdb8f2cdf4668c476cac842212892b2505ff3fJason Sams
46bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Samsint rsdScriptInvokeRoot(const android::renderscript::Context *dc,
47cdfdb8f2cdf4668c476cac842212892b2505ff3fJason Sams                        android::renderscript::Script *script);
48bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Samsvoid rsdScriptInvokeInit(const android::renderscript::Context *dc,
49cdfdb8f2cdf4668c476cac842212892b2505ff3fJason Sams                         android::renderscript::Script *script);
504ee16ffbd9d1d72e1757c9b26715597fdc044117Stephen Hinesvoid rsdScriptInvokeFreeChildren(const android::renderscript::Context *dc,
514ee16ffbd9d1d72e1757c9b26715597fdc044117Stephen Hines                                 android::renderscript::Script *script);
52bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams
53bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Samsvoid rsdScriptSetGlobalVar(const android::renderscript::Context *,
54bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams                           const android::renderscript::Script *,
55bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams                           uint32_t slot, void *data, size_t dataLen);
569c64239ebbfa4170190ede812e69150035e008e0Tim Murrayvoid rsdScriptGetGlobalVar(const android::renderscript::Context *,
579c64239ebbfa4170190ede812e69150035e008e0Tim Murray                           const android::renderscript::Script *,
589c64239ebbfa4170190ede812e69150035e008e0Tim Murray                           uint32_t slot, void *data, size_t dataLen);
592980f07d3dbbca727e8efe24ace7e7928a935648Stephen Hinesvoid rsdScriptSetGlobalVarWithElemDims(const android::renderscript::Context *,
602980f07d3dbbca727e8efe24ace7e7928a935648Stephen Hines                                       const android::renderscript::Script *,
612980f07d3dbbca727e8efe24ace7e7928a935648Stephen Hines                                       uint32_t slot, void *data,
622980f07d3dbbca727e8efe24ace7e7928a935648Stephen Hines                                       size_t dataLength,
632980f07d3dbbca727e8efe24ace7e7928a935648Stephen Hines                                       const android::renderscript::Element *,
642980f07d3dbbca727e8efe24ace7e7928a935648Stephen Hines                                       const size_t *dims,
652980f07d3dbbca727e8efe24ace7e7928a935648Stephen Hines                                       size_t dimLength);
66bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Samsvoid rsdScriptSetGlobalBind(const android::renderscript::Context *,
67bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams                            const android::renderscript::Script *,
68807fdc4b6f3fb893015ee136565d6151bb2332d3Jason Sams                            uint32_t slot, android::renderscript::Allocation *data);
69bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Samsvoid rsdScriptSetGlobalObj(const android::renderscript::Context *,
70bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams                           const android::renderscript::Script *,
71bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams                           uint32_t slot, android::renderscript::ObjectBase *data);
72bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams
73bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Samsvoid rsdScriptSetGlobal(const android::renderscript::Context *dc,
74bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams                        const android::renderscript::Script *script,
75bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams                        uint32_t slot,
76bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams                        void *data,
77bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams                        size_t dataLength);
78bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Samsvoid rsdScriptGetGlobal(const android::renderscript::Context *dc,
79bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams                        const android::renderscript::Script *script,
80bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams                        uint32_t slot,
81bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams                        void *data,
82bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams                        size_t dataLength);
83bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Samsvoid rsdScriptDestroy(const android::renderscript::Context *dc,
84bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams                      android::renderscript::Script *script);
85bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams
86807fdc4b6f3fb893015ee136565d6151bb2332d3Jason Samsandroid::renderscript::Allocation * rsdScriptGetAllocationForPointer(
87807fdc4b6f3fb893015ee136565d6151bb2332d3Jason Sams                        const android::renderscript::Context *dc,
88807fdc4b6f3fb893015ee136565d6151bb2332d3Jason Sams                        const android::renderscript::Script *script,
89807fdc4b6f3fb893015ee136565d6151bb2332d3Jason Sams                        const void *);
90bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams
91dbe66d6783c1e53cd1572de0ef6ef6fdf6f76f48Jason Sams
92bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams#endif
93