Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00041 #ifndef __RS_TYPES_RSH__
00042 #define __RS_TYPES_RSH__
00043
00044 #define M_PI 3.14159265358979323846264338327950288f
00045
00046 #include "stdbool.h"
00050 typedef char int8_t;
00054 typedef short int16_t;
00058 typedef int int32_t;
00062 typedef long long int64_t;
00066 typedef unsigned char uint8_t;
00070 typedef unsigned short uint16_t;
00074 typedef unsigned int uint32_t;
00078 typedef unsigned long long uint64_t;
00082 typedef uint8_t uchar;
00086 typedef uint16_t ushort;
00090 typedef uint32_t uint;
00094 typedef uint64_t ulong;
00098 typedef uint32_t size_t;
00102 typedef int32_t ssize_t;
00103
00109 typedef struct { const int* const p; } __attribute__((packed, aligned(4))) rs_element;
00115 typedef struct { const int* const p; } __attribute__((packed, aligned(4))) rs_type;
00121 typedef struct { const int* const p; } __attribute__((packed, aligned(4))) rs_allocation;
00127 typedef struct { const int* const p; } __attribute__((packed, aligned(4))) rs_sampler;
00133 typedef struct { const int* const p; } __attribute__((packed, aligned(4))) rs_script;
00139 typedef struct { const int* const p; } __attribute__((packed, aligned(4))) rs_mesh;
00145 typedef struct { const int* const p; } __attribute__((packed, aligned(4))) rs_program_fragment;
00151 typedef struct { const int* const p; } __attribute__((packed, aligned(4))) rs_program_vertex;
00157 typedef struct { const int* const p; } __attribute__((packed, aligned(4))) rs_program_raster;
00163 typedef struct { const int* const p; } __attribute__((packed, aligned(4))) rs_program_store;
00169 typedef struct { const int* const p; } __attribute__((packed, aligned(4))) rs_font;
00170
00176 typedef float float2 __attribute__((ext_vector_type(2)));
00181 typedef float float3 __attribute__((ext_vector_type(3)));
00187 typedef float float4 __attribute__((ext_vector_type(4)));
00188
00193 typedef double double2 __attribute__((ext_vector_type(2)));
00198 typedef double double3 __attribute__((ext_vector_type(3)));
00203 typedef double double4 __attribute__((ext_vector_type(4)));
00204
00209 typedef uchar uchar2 __attribute__((ext_vector_type(2)));
00214 typedef uchar uchar3 __attribute__((ext_vector_type(3)));
00219 typedef uchar uchar4 __attribute__((ext_vector_type(4)));
00220
00225 typedef ushort ushort2 __attribute__((ext_vector_type(2)));
00230 typedef ushort ushort3 __attribute__((ext_vector_type(3)));
00235 typedef ushort ushort4 __attribute__((ext_vector_type(4)));
00236
00241 typedef uint uint2 __attribute__((ext_vector_type(2)));
00246 typedef uint uint3 __attribute__((ext_vector_type(3)));
00251 typedef uint uint4 __attribute__((ext_vector_type(4)));
00252
00257 typedef ulong ulong2 __attribute__((ext_vector_type(2)));
00262 typedef ulong ulong3 __attribute__((ext_vector_type(3)));
00267 typedef ulong ulong4 __attribute__((ext_vector_type(4)));
00268
00273 typedef char char2 __attribute__((ext_vector_type(2)));
00278 typedef char char3 __attribute__((ext_vector_type(3)));
00283 typedef char char4 __attribute__((ext_vector_type(4)));
00284
00289 typedef short short2 __attribute__((ext_vector_type(2)));
00294 typedef short short3 __attribute__((ext_vector_type(3)));
00299 typedef short short4 __attribute__((ext_vector_type(4)));
00300
00305 typedef int int2 __attribute__((ext_vector_type(2)));
00310 typedef int int3 __attribute__((ext_vector_type(3)));
00315 typedef int int4 __attribute__((ext_vector_type(4)));
00316
00321 typedef long long2 __attribute__((ext_vector_type(2)));
00326 typedef long long3 __attribute__((ext_vector_type(3)));
00331 typedef long long4 __attribute__((ext_vector_type(4)));
00332
00339 typedef struct {
00340 float m[16];
00341 } rs_matrix4x4;
00348 typedef struct {
00349 float m[9];
00350 } rs_matrix3x3;
00357 typedef struct {
00358 float m[4];
00359 } rs_matrix2x2;
00360
00364 typedef float4 rs_quaternion;
00365
00366 #define RS_PACKED __attribute__((packed, aligned(4)))
00367 #define NULL ((const void *)0)
00368
00369 #if (defined(RS_VERSION) && (RS_VERSION >= 14))
00370
00374 typedef enum {
00375 RS_ALLOCATION_CUBEMAP_FACE_POSITIVE_X = 0,
00376 RS_ALLOCATION_CUBEMAP_FACE_NEGATIVE_X = 1,
00377 RS_ALLOCATION_CUBEMAP_FACE_POSITIVE_Y = 2,
00378 RS_ALLOCATION_CUBEMAP_FACE_NEGATIVE_Y = 3,
00379 RS_ALLOCATION_CUBEMAP_FACE_POSITIVE_Z = 4,
00380 RS_ALLOCATION_CUBEMAP_FACE_NEGATIVE_Z = 5
00381 } rs_allocation_cubemap_face;
00382
00389 typedef enum {
00390 RS_ALLOCATION_USAGE_SCRIPT = 0x0001,
00391 RS_ALLOCATION_USAGE_GRAPHICS_TEXTURE = 0x0002,
00392 RS_ALLOCATION_USAGE_GRAPHICS_VERTEX = 0x0004,
00393 RS_ALLOCATION_USAGE_GRAPHICS_CONSTANTS = 0x0008,
00394 RS_ALLOCATION_USAGE_GRAPHICS_RENDER_TARGET = 0x0010
00395 } rs_allocation_usage_type;
00396
00397 #endif //defined(RS_VERSION) && (RS_VERSION >= 14)
00398
00399 #endif