rs_types.rsh revision ed2ea272afbab08d0b5d882202c8eb19a5233481
19bb32e1fd75e864071f18ef10976e8ba9fc0e252Shih-wei Liao#ifndef __RS_TYPES_RSH__
29bb32e1fd75e864071f18ef10976e8ba9fc0e252Shih-wei Liao#define __RS_TYPES_RSH__
3717e34a50d2de026b5b66b4ccad06b7bc8b62b9eJason Sams
45439184e13077059e4caffbdadfcfe37ec99ec10Shih-wei Liao#define M_PI        3.14159265358979323846264338327950288f   /* pi */
55439184e13077059e4caffbdadfcfe37ec99ec10Shih-wei Liao
6ed2ea272afbab08d0b5d882202c8eb19a5233481Shih-wei Liao#include "stdbool.h"
7717e34a50d2de026b5b66b4ccad06b7bc8b62b9eJason Samstypedef char int8_t;
8717e34a50d2de026b5b66b4ccad06b7bc8b62b9eJason Samstypedef short int16_t;
9717e34a50d2de026b5b66b4ccad06b7bc8b62b9eJason Samstypedef int int32_t;
1022fa371bf64b8aae786acfe5d711af21afb13a93Jason Samstypedef long long int64_t;
11717e34a50d2de026b5b66b4ccad06b7bc8b62b9eJason Sams
12717e34a50d2de026b5b66b4ccad06b7bc8b62b9eJason Samstypedef unsigned char uint8_t;
13717e34a50d2de026b5b66b4ccad06b7bc8b62b9eJason Samstypedef unsigned short uint16_t;
14717e34a50d2de026b5b66b4ccad06b7bc8b62b9eJason Samstypedef unsigned int uint32_t;
1522fa371bf64b8aae786acfe5d711af21afb13a93Jason Samstypedef unsigned long long uint64_t;
16717e34a50d2de026b5b66b4ccad06b7bc8b62b9eJason Sams
17717e34a50d2de026b5b66b4ccad06b7bc8b62b9eJason Samstypedef uint8_t uchar;
18717e34a50d2de026b5b66b4ccad06b7bc8b62b9eJason Samstypedef uint16_t ushort;
19717e34a50d2de026b5b66b4ccad06b7bc8b62b9eJason Samstypedef uint32_t uint;
2022fa371bf64b8aae786acfe5d711af21afb13a93Jason Samstypedef uint64_t ulong;
21717e34a50d2de026b5b66b4ccad06b7bc8b62b9eJason Sams
22c093685672e54657d87b953d44e514803889486cJason Samstypedef struct { const int* const p; } __attribute__((packed, aligned(4))) rs_element;
23c093685672e54657d87b953d44e514803889486cJason Samstypedef struct { const int* const p; } __attribute__((packed, aligned(4))) rs_type;
24c093685672e54657d87b953d44e514803889486cJason Samstypedef struct { const int* const p; } __attribute__((packed, aligned(4))) rs_allocation;
25c093685672e54657d87b953d44e514803889486cJason Samstypedef struct { const int* const p; } __attribute__((packed, aligned(4))) rs_sampler;
26c093685672e54657d87b953d44e514803889486cJason Samstypedef struct { const int* const p; } __attribute__((packed, aligned(4))) rs_script;
27c093685672e54657d87b953d44e514803889486cJason Samstypedef struct { const int* const p; } __attribute__((packed, aligned(4))) rs_mesh;
28c093685672e54657d87b953d44e514803889486cJason Samstypedef struct { const int* const p; } __attribute__((packed, aligned(4))) rs_program_fragment;
29c093685672e54657d87b953d44e514803889486cJason Samstypedef struct { const int* const p; } __attribute__((packed, aligned(4))) rs_program_vertex;
30c093685672e54657d87b953d44e514803889486cJason Samstypedef struct { const int* const p; } __attribute__((packed, aligned(4))) rs_program_raster;
31c093685672e54657d87b953d44e514803889486cJason Samstypedef struct { const int* const p; } __attribute__((packed, aligned(4))) rs_program_store;
32c093685672e54657d87b953d44e514803889486cJason Samstypedef struct { const int* const p; } __attribute__((packed, aligned(4))) rs_font;
33c093685672e54657d87b953d44e514803889486cJason Sams
34717e34a50d2de026b5b66b4ccad06b7bc8b62b9eJason Sams
35717e34a50d2de026b5b66b4ccad06b7bc8b62b9eJason Samstypedef float float2 __attribute__((ext_vector_type(2)));
36717e34a50d2de026b5b66b4ccad06b7bc8b62b9eJason Samstypedef float float3 __attribute__((ext_vector_type(3)));
37717e34a50d2de026b5b66b4ccad06b7bc8b62b9eJason Samstypedef float float4 __attribute__((ext_vector_type(4)));
38717e34a50d2de026b5b66b4ccad06b7bc8b62b9eJason Sams
39717e34a50d2de026b5b66b4ccad06b7bc8b62b9eJason Samstypedef uchar uchar2 __attribute__((ext_vector_type(2)));
40717e34a50d2de026b5b66b4ccad06b7bc8b62b9eJason Samstypedef uchar uchar3 __attribute__((ext_vector_type(3)));
41717e34a50d2de026b5b66b4ccad06b7bc8b62b9eJason Samstypedef uchar uchar4 __attribute__((ext_vector_type(4)));
42717e34a50d2de026b5b66b4ccad06b7bc8b62b9eJason Sams
43717e34a50d2de026b5b66b4ccad06b7bc8b62b9eJason Samstypedef ushort ushort2 __attribute__((ext_vector_type(2)));
44717e34a50d2de026b5b66b4ccad06b7bc8b62b9eJason Samstypedef ushort ushort3 __attribute__((ext_vector_type(3)));
45717e34a50d2de026b5b66b4ccad06b7bc8b62b9eJason Samstypedef ushort ushort4 __attribute__((ext_vector_type(4)));
46717e34a50d2de026b5b66b4ccad06b7bc8b62b9eJason Sams
47717e34a50d2de026b5b66b4ccad06b7bc8b62b9eJason Samstypedef uint uint2 __attribute__((ext_vector_type(2)));
48717e34a50d2de026b5b66b4ccad06b7bc8b62b9eJason Samstypedef uint uint3 __attribute__((ext_vector_type(3)));
49717e34a50d2de026b5b66b4ccad06b7bc8b62b9eJason Samstypedef uint uint4 __attribute__((ext_vector_type(4)));
50717e34a50d2de026b5b66b4ccad06b7bc8b62b9eJason Sams
51717e34a50d2de026b5b66b4ccad06b7bc8b62b9eJason Samstypedef char char2 __attribute__((ext_vector_type(2)));
52717e34a50d2de026b5b66b4ccad06b7bc8b62b9eJason Samstypedef char char3 __attribute__((ext_vector_type(3)));
53717e34a50d2de026b5b66b4ccad06b7bc8b62b9eJason Samstypedef char char4 __attribute__((ext_vector_type(4)));
54717e34a50d2de026b5b66b4ccad06b7bc8b62b9eJason Sams
55717e34a50d2de026b5b66b4ccad06b7bc8b62b9eJason Samstypedef short short2 __attribute__((ext_vector_type(2)));
56717e34a50d2de026b5b66b4ccad06b7bc8b62b9eJason Samstypedef short short3 __attribute__((ext_vector_type(3)));
57717e34a50d2de026b5b66b4ccad06b7bc8b62b9eJason Samstypedef short short4 __attribute__((ext_vector_type(4)));
58717e34a50d2de026b5b66b4ccad06b7bc8b62b9eJason Sams
59717e34a50d2de026b5b66b4ccad06b7bc8b62b9eJason Samstypedef int int2 __attribute__((ext_vector_type(2)));
60717e34a50d2de026b5b66b4ccad06b7bc8b62b9eJason Samstypedef int int3 __attribute__((ext_vector_type(3)));
61717e34a50d2de026b5b66b4ccad06b7bc8b62b9eJason Samstypedef int int4 __attribute__((ext_vector_type(4)));
62717e34a50d2de026b5b66b4ccad06b7bc8b62b9eJason Sams
63717e34a50d2de026b5b66b4ccad06b7bc8b62b9eJason Sams
6405f1cb4ca5ce203a4facc7ec0bd002af2ae324b7Alex Sakhartchouktypedef struct {
6522fa371bf64b8aae786acfe5d711af21afb13a93Jason Sams    float m[16];
6622fa371bf64b8aae786acfe5d711af21afb13a93Jason Sams} rs_matrix4x4;
6722fa371bf64b8aae786acfe5d711af21afb13a93Jason Sams
6805f1cb4ca5ce203a4facc7ec0bd002af2ae324b7Alex Sakhartchouktypedef struct {
697fe6bce13c30b8d14dc833e06468666d28e56ee1Jason Sams    float m[9];
707fe6bce13c30b8d14dc833e06468666d28e56ee1Jason Sams} rs_matrix3x3;
717fe6bce13c30b8d14dc833e06468666d28e56ee1Jason Sams
7205f1cb4ca5ce203a4facc7ec0bd002af2ae324b7Alex Sakhartchouktypedef struct {
737fe6bce13c30b8d14dc833e06468666d28e56ee1Jason Sams    float m[4];
747fe6bce13c30b8d14dc833e06468666d28e56ee1Jason Sams} rs_matrix2x2;
757fe6bce13c30b8d14dc833e06468666d28e56ee1Jason Sams
760bd010a5bdf4df3021c92c70e92008d6640c5da6Alex Sakhartchouktypedef float4 rs_quaternion;
777fe6bce13c30b8d14dc833e06468666d28e56ee1Jason Sams
7897589cbd2b844543f6c8a6bc336f4e11a67828fdJason Sams#define RS_PACKED __attribute__((packed, aligned(4)))
7997589cbd2b844543f6c8a6bc336f4e11a67828fdJason Sams
809bb32e1fd75e864071f18ef10976e8ba9fc0e252Shih-wei Liao#endif
81