Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00042 #ifndef __RS_CORE_RSH__
00043 #define __RS_CORE_RSH__
00044
00045 #define _RS_RUNTIME extern
00046
00047 #include "rs_types.rsh"
00048 #include "rs_allocation.rsh"
00049 #include "rs_atomic.rsh"
00050 #include "rs_cl.rsh"
00051 #include "rs_debug.rsh"
00052 #include "rs_element.rsh"
00053 #include "rs_math.rsh"
00054 #include "rs_matrix.rsh"
00055 #include "rs_object.rsh"
00056 #include "rs_quaternion.rsh"
00057 #include "rs_sampler.rsh"
00058 #include "rs_time.rsh"
00059
00065 extern bool __attribute__((overloadable))
00066 rsSendToClient(int cmdID);
00070 extern bool __attribute__((overloadable))
00071 rsSendToClient(int cmdID, const void *data, uint len);
00076 extern void __attribute__((overloadable))
00077 rsSendToClientBlocking(int cmdID);
00081 extern void __attribute__((overloadable))
00082 rsSendToClientBlocking(int cmdID, const void *data, uint len);
00083
00084
00092 enum rs_for_each_strategy {
00093 RS_FOR_EACH_STRATEGY_SERIAL,
00094 RS_FOR_EACH_STRATEGY_DONT_CARE,
00095 RS_FOR_EACH_STRATEGY_DST_LINEAR,
00096 RS_FOR_EACH_STRATEGY_TILE_SMALL,
00097 RS_FOR_EACH_STRATEGY_TILE_MEDIUM,
00098 RS_FOR_EACH_STRATEGY_TILE_LARGE
00099 };
00100
00101
00106 typedef struct rs_script_call {
00107 enum rs_for_each_strategy strategy;
00108 uint32_t xStart;
00109 uint32_t xEnd;
00110 uint32_t yStart;
00111 uint32_t yEnd;
00112 uint32_t zStart;
00113 uint32_t zEnd;
00114 uint32_t arrayStart;
00115 uint32_t arrayEnd;
00116 } rs_script_call_t;
00117
00134 #if !defined(RS_VERSION) || (RS_VERSION < 14)
00135 extern void __attribute__((overloadable))
00136 rsForEach(rs_script script, rs_allocation input,
00137 rs_allocation output, const void * usrData,
00138 const rs_script_call_t *sc);
00142 extern void __attribute__((overloadable))
00143 rsForEach(rs_script script, rs_allocation input,
00144 rs_allocation output, const void * usrData);
00145 #else
00146
00165 extern void __attribute__((overloadable))
00166 rsForEach(rs_script script, rs_allocation input, rs_allocation output,
00167 const void * usrData, size_t usrDataLen, const rs_script_call_t *);
00171 extern void __attribute__((overloadable))
00172 rsForEach(rs_script script, rs_allocation input, rs_allocation output,
00173 const void * usrData, size_t usrDataLen);
00177 extern void __attribute__((overloadable))
00178 rsForEach(rs_script script, rs_allocation input, rs_allocation output);
00179 #endif
00180
00181
00182
00183 #undef _RS_RUNTIME
00184
00185 #endif