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