-
Notifications
You must be signed in to change notification settings - Fork 8
/
awd_types.h
147 lines (119 loc) · 2.54 KB
/
awd_types.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
#ifndef _LIBAWD_AWD_TYPES_H
#define _LIBAWD_AWD_TYPES_H
// POD types
typedef char awd_int8;
typedef short awd_int16;
typedef int awd_int32;
typedef unsigned char awd_uint8;
typedef unsigned short awd_uint16;
typedef unsigned int awd_uint32;
typedef float awd_float32;
typedef double awd_float64;
typedef unsigned int awd_baddr;
typedef unsigned char awd_nsid;
typedef unsigned int awd_color;
typedef unsigned char awd_bool;
#define AWD_TRUE 1
#define AWD_FALSE 0
#define AWD_NULL 0
// Byte order conversions
// TODO: Use different depending on platform
/*
#define UI16(x) awdutil_swapui16(x)
#define UI32(x) awdutil_swapui32(x)
#define F32(x) awdutil_swapf32(x)
#define F64(x) awdutil_swapf64(x)
*/
#define UI16(x) x
#define UI32(x) x
#define F32(x) x
#define F64(x) x
typedef enum {
// Numeric types
AWD_FIELD_INT8=1,
AWD_FIELD_INT16,
AWD_FIELD_INT32,
AWD_FIELD_UINT8,
AWD_FIELD_UINT16,
AWD_FIELD_UINT32,
AWD_FIELD_FLOAT32,
AWD_FIELD_FLOAT64,
// Derived numeric types
AWD_FIELD_BOOL=21,
AWD_FIELD_COLOR,
AWD_FIELD_BADDR,
// Aggregate/array types
AWD_FIELD_STRING=31,
AWD_FIELD_BYTEARRAY,
// Mathetmatical types
AWD_FIELD_VECTOR2x1=41,
AWD_FIELD_VECTOR3x1,
AWD_FIELD_VECTOR4x1,
AWD_FIELD_MTX3x2,
AWD_FIELD_MTX3x3,
AWD_FIELD_MTX4x3,
AWD_FIELD_MTX4x4,
} AWD_field_type;
typedef union {
void *v;
awd_bool *b;
awd_int8 *i8;
awd_int16 *i16;
awd_int32 *i32;
awd_uint8 *ui8;
awd_uint16 *ui16;
awd_uint32 *ui32;
awd_float32 *f32;
awd_float64 *f64;
awd_float64 *mtx;
awd_float64 *vec;
awd_uint32 *col;
awd_baddr *addr;
char *str;
} AWD_field_ptr;
typedef enum {
NULL_REF=0,
// Geometry/data
TRI_GEOM=1,
PRIM_GEOM=11,
// Scene objects
SCENE=21,
CONTAINER=22,
MESH_INSTANCE=23,
SKYBOX=31,
LIGHT=41,
CAMERA=42,
TEXTURE_PROJECTOR=43,
SOUND_SOURCE=44,
LIGHTPICKER=51,
// Partitioning
BSP_TREE=61,
OCT_TREE=62,
// Materials
SIMPLE_MATERIAL=81,
BITMAP_TEXTURE=82,
CUBE_TEXTURE=83,
CUBE_TEXTURE_ATF=84,
EFFECT_METHOD=91,
SHADOW_METHOD=92,
// Animation
SKELETON=101,
SKELETON_POSE=102,
SKELETON_ANIM=103,
VERTEX_POSE=111,
VERTEX_ANIM=112,
ANIMATION_SET=113,
ANIMATOR=122,
UV_ANIM=121,
// Misc
COMMAND=253,
NAMESPACE=254,
METADATA=255,
MESSAGE=500//only used intern to store warnings
} AWD_block_type;
typedef enum {
UNCOMPRESSED,
DEFLATE,
LZMA
} AWD_compression;
#endif