blob: 33e7ee4e5f30d86dc782cc8b1d31b41ba872b806 [file] [log] [blame]
Jason Sams22fa3712010-05-19 17:22:57 -07001#include "rs_cl.rsh"
Jason Sams717e34a2010-03-16 15:35:57 -07002
Jason Samsbe36bf32010-05-11 14:03:58 -07003
Jason Sams22fa3712010-05-19 17:22:57 -07004// Allocations
Jason Samsce92d4b2010-05-17 14:55:34 -07005extern rs_allocation rsGetAllocation(const void *);
Jason Sams22fa3712010-05-19 17:22:57 -07006extern uint32_t rsAllocationGetDimX(rs_allocation);
7extern uint32_t rsAllocationGetDimY(rs_allocation);
8extern uint32_t rsAllocationGetDimZ(rs_allocation);
9extern uint32_t rsAllocationGetDimLOD(rs_allocation);
10extern uint32_t rsAllocationGetDimFaces(rs_allocation);
11
12
13
14// Color conversion
15extern uchar4 __attribute__((overloadable)) rsPackColorTo8888(float r, float g, float b);
16extern uchar4 __attribute__((overloadable)) rsPackColorTo8888(float r, float g, float b, float a);
17extern uchar4 __attribute__((overloadable)) rsPackColorTo8888(float3);
18extern uchar4 __attribute__((overloadable)) rsPackColorTo8888(float4);
19extern float4 rsUnpackColor8888(uchar4);
20
21extern uchar4 __attribute__((overloadable)) rsPackColorTo565(float r, float g, float b);
22extern uchar4 __attribute__((overloadable)) rsPackColorTo565(float3);
23extern float4 rsUnpackColor565(uchar4);
24
25
26// Debugging
27extern void __attribute__((overloadable))rsDebug(const char *, float);
28extern void __attribute__((overloadable))rsDebug(const char *, float2);
29extern void __attribute__((overloadable))rsDebug(const char *, float3);
30extern void __attribute__((overloadable))rsDebug(const char *, float4);
31extern void __attribute__((overloadable))rsDebug(const char *, int);
32extern void __attribute__((overloadable))rsDebug(const char *, const void *);
33#define RS_DEBUG(a) rsDebug(#a, a)
34#define RS_DEBUG_MARKER rsDebug(__FILE__, __LINE__)
35
36// RS Math
37extern int __attribute__((overloadable)) rsRand(int);
38extern int __attribute__((overloadable)) rsRand(int, int);
39extern float __attribute__((overloadable)) rsRand(float);
40extern float __attribute__((overloadable)) rsRand(float, float);
41
42extern float __attribute__((overloadable)) rsFrac(float);
43
44// time
45extern int32_t rsSecond();
46extern int32_t rsMinute();
47extern int32_t rsHour();
48extern int32_t rsDay();
49extern int32_t rsMonth();
50extern int32_t rsYear();
51extern int64_t rsUptimeMillis();
52extern int64_t rsStartTimeMillis();
53extern int64_t rsElapsedTimeMillis();
54
55extern int rsSendToClient(void *data, int cmdID, int len, int waitForSpace);
56
57extern void rsMatrixLoadIdentity(rs_matrix4x4 *mat);
58extern void rsMatrixLoadFloat(rs_matrix4x4 *mat, const float *f);
59extern void rsMatrixLoadMat(rs_matrix4x4 *mat, const rs_matrix4x4 *newmat);
60extern void rsMatrixLoadRotate(rs_matrix4x4 *mat, float rot, float x, float y, float z);
61extern void rsMatrixLoadScale(rs_matrix4x4*mat, float x, float y, float z);
62extern void rsMatrixLoadTranslate(rs_matrix4x4 *mat, float x, float y, float z);
63extern void rsMatrixLoadMultiply(rs_matrix4x4 *mat, const rs_matrix4x4 *lhs, const rs_matrix4x4 *rhs);
64extern void rsMatrixMultiply(rs_matrix4x4 *mat, const rs_matrix4x4 *rhs);
65extern void rsMatrixRotate(rs_matrix4x4 *mat, float rot, float x, float y, float z);
66extern void rsMatrixScale(rs_matrix4x4 *mat, float x, float y, float z);
67extern void rsMatrixTranslate(rs_matrix4x4 *mat, float x, float y, float z);
68
69
70///////////////////////////////////////////////////////////////////
71// non update funcs
72
Jason Sams22fa3712010-05-19 17:22:57 -070073/*
74extern float3 float3Norm(float3);
75extern float float3Length(float3);
76extern float3 float3Add(float3 lhs, float3 rhs);
77extern float3 float3Sub(float3 lhs, float3 rhs);
78extern float3 float3Cross(float3 lhs, float3 rhs);
79extern float float3Dot(float3 lhs, float3 rhs);
80extern float3 float3Scale(float3 v, float scale);
81
82extern float4 float4Add(float4 lhs, float4 rhs);
83extern float4 float4Sub(float4 lhs, float4 rhs);
84extern float4 float4Cross(float4 lhs, float4 rhs);
85extern float float4Dot(float4 lhs, float4 rhs);
86extern float4 float4Scale(float4 v, float scale);
87*/
88
Jason Sams717e34a2010-03-16 15:35:57 -070089