blob: bd6e5a9e9e52b0e7ed86a9dadce68c2dcb3e214d [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 Samsce92d4b2010-05-17 14:55:34 -070010extern rs_allocation rsGetAllocation(const void *);
Jason Sams22fa3712010-05-19 17:22:57 -070011extern uint32_t rsAllocationGetDimX(rs_allocation);
12extern uint32_t rsAllocationGetDimY(rs_allocation);
13extern uint32_t rsAllocationGetDimZ(rs_allocation);
14extern uint32_t rsAllocationGetDimLOD(rs_allocation);
15extern uint32_t rsAllocationGetDimFaces(rs_allocation);
16
Jason Sams7bf29dd2010-07-19 15:38:19 -070017extern const void * __attribute__((overloadable))
18 rsGetElementAt(rs_allocation, uint32_t x);
19extern const void * __attribute__((overloadable))
20 rsGetElementAt(rs_allocation, uint32_t x, uint32_t y);
21extern const void * __attribute__((overloadable))
22 rsGetElementAt(rs_allocation, uint32_t x, uint32_t y, uint32_t z);
Jason Sams22fa3712010-05-19 17:22:57 -070023
24
Jason Sams22fa3712010-05-19 17:22:57 -070025// Debugging
26extern void __attribute__((overloadable))rsDebug(const char *, float);
27extern void __attribute__((overloadable))rsDebug(const char *, float2);
28extern void __attribute__((overloadable))rsDebug(const char *, float3);
29extern void __attribute__((overloadable))rsDebug(const char *, float4);
30extern void __attribute__((overloadable))rsDebug(const char *, int);
31extern void __attribute__((overloadable))rsDebug(const char *, const void *);
32#define RS_DEBUG(a) rsDebug(#a, a)
33#define RS_DEBUG_MARKER rsDebug(__FILE__, __LINE__)
34
35// RS Math
36extern int __attribute__((overloadable)) rsRand(int);
37extern int __attribute__((overloadable)) rsRand(int, int);
38extern float __attribute__((overloadable)) rsRand(float);
39extern float __attribute__((overloadable)) rsRand(float, float);
40
41extern float __attribute__((overloadable)) rsFrac(float);
42
43// time
44extern int32_t rsSecond();
45extern int32_t rsMinute();
46extern int32_t rsHour();
47extern int32_t rsDay();
48extern int32_t rsMonth();
49extern int32_t rsYear();
50extern int64_t rsUptimeMillis();
51extern int64_t rsStartTimeMillis();
52extern int64_t rsElapsedTimeMillis();
53
54extern int rsSendToClient(void *data, int cmdID, int len, int waitForSpace);
55
Jason Samsc61346b2010-05-28 18:23:22 -070056// Script to Script
Jason Samsace3e012010-07-15 17:11:13 -070057typedef struct rs_script_call {
Jason Sams479e2922010-07-09 15:34:32 -070058 uint32_t xStart;
59 uint32_t xEnd;
60 uint32_t yStart;
61 uint32_t yEnd;
62 uint32_t zStart;
63 uint32_t zEnd;
64 uint32_t arrayStart;
65 uint32_t arrayEnd;
66
Jason Samsace3e012010-07-15 17:11:13 -070067} rs_script_call_t;
Jason Sams479e2922010-07-09 15:34:32 -070068
Jason Samsace3e012010-07-15 17:11:13 -070069extern void __attribute__((overloadable))rsForEach(rs_script script,
70 rs_allocation input,
71 rs_allocation output,
72 const void * usrData);
73
74extern void __attribute__((overloadable))rsForEach(rs_script script,
75 rs_allocation input,
76 rs_allocation output,
77 const void * usrData,
78 const rs_script_call_t *);
Jason Samsc61346b2010-05-28 18:23:22 -070079
Jason Samsc4cdf452010-07-07 11:55:51 -070080#endif