summaryrefslogtreecommitdiff
path: root/cpu_ref/rsCpuIntrinsic.h
diff options
context:
space:
mode:
authorJason Sams <jsams@google.com>2012-11-15 18:18:04 -0800
committerStephen Hines <srhines@google.com>2012-11-19 15:25:05 -0800
commit709a0978ae141198018ca9769f8d96292a8928e6 (patch)
treedf238ec6851e4174ec86d363b310d97e2b395ebb /cpu_ref/rsCpuIntrinsic.h
parent6f01bcf691433b8413e57fe8b67b0f5dba4d0013 (diff)
downloadrs-709a0978ae141198018ca9769f8d96292a8928e6.tar.gz
Separate CPU driver impl from reference driver.
Change-Id: Ifb484edda665959b81d7b1f890d108bfa20a535d
Diffstat (limited to 'cpu_ref/rsCpuIntrinsic.h')
-rw-r--r--cpu_ref/rsCpuIntrinsic.h63
1 files changed, 63 insertions, 0 deletions
diff --git a/cpu_ref/rsCpuIntrinsic.h b/cpu_ref/rsCpuIntrinsic.h
new file mode 100644
index 00000000..17561157
--- /dev/null
+++ b/cpu_ref/rsCpuIntrinsic.h
@@ -0,0 +1,63 @@
+/*
+ * Copyright (C) 2012 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef RSD_CPU_SCRIPT_INTRINSIC_H
+#define RSD_CPU_SCRIPT_INTRINSIC_H
+
+#include "rsCpuScript.h"
+
+
+namespace android {
+namespace renderscript {
+
+
+class RsdCpuScriptIntrinsic : public RsdCpuScriptImpl {
+public:
+ virtual void populateScript(Script *) = 0;
+
+ virtual void invokeFunction(uint32_t slot, const void *params, size_t paramLength);
+ virtual int invokeRoot();
+ virtual void invokeForEach(uint32_t slot,
+ const Allocation * ain,
+ Allocation * aout,
+ const void * usr,
+ uint32_t usrLen,
+ const RsScriptCall *sc);
+ virtual void forEachKernelSetup(uint32_t slot, MTLaunchStruct *mtls);
+ virtual void invokeInit();
+ virtual void invokeFreeChildren();
+
+ virtual void setGlobalVar(uint32_t slot, const void *data, size_t dataLength);
+ virtual void setGlobalVarWithElemDims(uint32_t slot, const void *data, size_t dataLength,
+ const Element *e, const size_t *dims, size_t dimLength);
+ virtual void setGlobalBind(uint32_t slot, Allocation *data);
+ virtual void setGlobalObj(uint32_t slot, ObjectBase *data);
+
+ virtual ~RsdCpuScriptIntrinsic();
+ RsdCpuScriptIntrinsic(RsdCpuReferenceImpl *ctx, const Script *s, RsScriptIntrinsicID iid);
+
+protected:
+ RsScriptIntrinsicID mID;
+ outer_foreach_t mRootPtr;
+
+};
+
+
+
+}
+}
+
+#endif