blob: 309a95209847ff4145274d8eeef432ae36b7d280 [file] [log] [blame]
Jason Samsc4cdf452010-07-07 11:55:51 -07001#ifndef __RS_MATH_RSH__
2#define __RS_MATH_RSH__
3
Jason Sams22fa3712010-05-19 17:22:57 -07004#include "rs_cl.rsh"
Jason Sams275b1e92010-05-28 18:08:16 -07005#include "rs_core.rsh"
6
Jason Sams717e34a2010-03-16 15:35:57 -07007
Jason Samsbe36bf32010-05-11 14:03:58 -07008
Jason Sams22fa3712010-05-19 17:22:57 -07009// Allocations
Jason Samsef5867a2010-07-28 11:17:53 -070010extern rs_allocation __attribute__((overloadable))
11 rsGetAllocation(const void *);
12extern uint32_t __attribute__((overloadable))
13 rsAllocationGetDimX(rs_allocation);
14extern uint32_t __attribute__((overloadable))
15 rsAllocationGetDimY(rs_allocation);
16extern uint32_t __attribute__((overloadable))
17 rsAllocationGetDimZ(rs_allocation);
18extern uint32_t __attribute__((overloadable))
19 rsAllocationGetDimLOD(rs_allocation);
20extern uint32_t __attribute__((overloadable))
21 rsAllocationGetDimFaces(rs_allocation);
Jason Sams22fa3712010-05-19 17:22:57 -070022
Jason Sams7bf29dd2010-07-19 15:38:19 -070023extern const void * __attribute__((overloadable))
24 rsGetElementAt(rs_allocation, uint32_t x);
25extern const void * __attribute__((overloadable))
26 rsGetElementAt(rs_allocation, uint32_t x, uint32_t y);
27extern const void * __attribute__((overloadable))
28 rsGetElementAt(rs_allocation, uint32_t x, uint32_t y, uint32_t z);
Jason Sams22fa3712010-05-19 17:22:57 -070029
30
Jason Sams22fa3712010-05-19 17:22:57 -070031// Debugging
32extern void __attribute__((overloadable))rsDebug(const char *, float);
33extern void __attribute__((overloadable))rsDebug(const char *, float2);
34extern void __attribute__((overloadable))rsDebug(const char *, float3);
35extern void __attribute__((overloadable))rsDebug(const char *, float4);
36extern void __attribute__((overloadable))rsDebug(const char *, int);
Jason Samsef5867a2010-07-28 11:17:53 -070037extern void __attribute__((overloadable))rsDebug(const char *, uint);
Jason Sams22fa3712010-05-19 17:22:57 -070038extern void __attribute__((overloadable))rsDebug(const char *, const void *);
39#define RS_DEBUG(a) rsDebug(#a, a)
40#define RS_DEBUG_MARKER rsDebug(__FILE__, __LINE__)
41
42// RS Math
Jason Samsef5867a2010-07-28 11:17:53 -070043extern int __attribute__((overloadable))rsRand(int);
44extern int __attribute__((overloadable))rsRand(int, int);
45extern float __attribute__((overloadable))rsRand(float);
46extern float __attribute__((overloadable))rsRand(float, float);
Jason Sams22fa3712010-05-19 17:22:57 -070047
48extern float __attribute__((overloadable)) rsFrac(float);
49
50// time
Jason Samsef5867a2010-07-28 11:17:53 -070051extern int32_t /*__attribute__((overloadable))*/rsSecond();
52extern int32_t /*__attribute__((overloadable))*/rsMinute();
53extern int32_t /*__attribute__((overloadable))*/rsHour();
54extern int32_t /*__attribute__((overloadable))*/rsDay();
55extern int32_t /*__attribute__((overloadable))*/rsMonth();
56extern int32_t /*__attribute__((overloadable))*/rsYear();
57extern int64_t /*__attribute__((overloadable))*/rsUptimeMillis();
58extern int64_t /*__attribute__((overloadable))*/rsStartTimeMillis();
59extern int64_t /*__attribute__((overloadable))*/rsElapsedTimeMillis();
60extern float /*__attribute__((overloadable))*/rsGetDt();
Jason Sams22fa3712010-05-19 17:22:57 -070061
Jason Samsef5867a2010-07-28 11:17:53 -070062extern bool __attribute__((overloadable))rsSendToClient(int cmdID);
63extern bool __attribute__((overloadable))rsSendToClient(int cmdID, const void *data, uint len);
64extern void __attribute__((overloadable))rsSendToClientBlocking(int cmdID);
65extern void __attribute__((overloadable))rsSendToClientBlocking(int cmdID, const void *data, uint len);
Jason Sams22fa3712010-05-19 17:22:57 -070066
Jason Samsc61346b2010-05-28 18:23:22 -070067// Script to Script
Jason Samsace3e012010-07-15 17:11:13 -070068typedef struct rs_script_call {
Jason Sams479e2922010-07-09 15:34:32 -070069 uint32_t xStart;
70 uint32_t xEnd;
71 uint32_t yStart;
72 uint32_t yEnd;
73 uint32_t zStart;
74 uint32_t zEnd;
75 uint32_t arrayStart;
76 uint32_t arrayEnd;
77
Jason Samsace3e012010-07-15 17:11:13 -070078} rs_script_call_t;
Jason Sams479e2922010-07-09 15:34:32 -070079
Jason Samsace3e012010-07-15 17:11:13 -070080extern void __attribute__((overloadable))rsForEach(rs_script script,
81 rs_allocation input,
82 rs_allocation output,
83 const void * usrData);
84
85extern void __attribute__((overloadable))rsForEach(rs_script script,
86 rs_allocation input,
87 rs_allocation output,
88 const void * usrData,
89 const rs_script_call_t *);
Jason Samsc61346b2010-05-28 18:23:22 -070090
Jason Samsc4cdf452010-07-07 11:55:51 -070091#endif