rstd_types.h (1976B)
1 //////////////////////// 2 // NOTE: Standard Types 3 4 #ifndef RSTD_TYPES_H 5 #define RSTD_TYPES_H 6 7 #if COMPILER_MSVC 8 typedef unsigned __int64 u64; 9 typedef signed __int64 s64; 10 typedef unsigned __int32 u32; 11 typedef signed __int32 s32; 12 typedef unsigned __int16 u16; 13 typedef signed __int16 s16; 14 typedef unsigned __int8 u8; 15 typedef signed __int8 s8; 16 #else 17 typedef __UINT64_TYPE__ u64; 18 typedef __INT64_TYPE__ s64; 19 typedef __UINT32_TYPE__ u32; 20 typedef __INT32_TYPE__ s32; 21 typedef __UINT16_TYPE__ u16; 22 typedef __INT16_TYPE__ s16; 23 typedef __UINT8_TYPE__ u8; 24 typedef __INT8_TYPE__ s8; 25 typedef _Float16 f16; 26 #endif 27 28 typedef u8 b8; 29 typedef u16 b16; 30 typedef u32 b32; 31 typedef u64 b64; 32 typedef float f32; 33 typedef double f64; 34 typedef s64 sptr; 35 typedef u64 uptr; 36 37 #define U64_MAX (0xFFFFFFFFFFFFFFFFull) 38 #define U32_MAX (0xFFFFFFFFul) 39 #define U16_MAX (0xFFFFu) 40 #define U8_MAX (0xFFu) 41 #define S64_MAX (0x7FFFFFFFFFFFFFFFll) 42 #define S32_MAX (0x7FFFFFFFl) 43 #define S16_MAX (0x7FFF) 44 #define S8_MAX (0x7F) 45 46 #define GB(a) ((u64)(a) << 30ULL) 47 #define MB(a) ((u64)(a) << 20ULL) 48 #define KB(a) ((u64)(a) << 10ULL) 49 50 typedef struct {s64 length; u16 *data;} str16; 51 typedef struct {s64 length; u8 *data;} str8; 52 53 #define str8(s) (str8){.length = (s64)sizeof(s) - 1, .data = (u8 *)s} 54 #define str8_comp(s) {sizeof(s) - 1, (u8 *)s} 55 56 #pragma pack(push, 1) 57 typedef struct { 58 u16 file_type; 59 u32 file_size; 60 u16 reserved_1; 61 u16 reserved_2; 62 u32 bitmap_offset; 63 64 u32 size; 65 s32 width; 66 s32 height; 67 u16 planes; 68 u16 bits_per_pixel; 69 70 u32 compression; 71 u32 size_of_bitmap; 72 73 s32 horizontal_resolution; 74 s32 vertical_resolution; 75 u32 colours_used; 76 u32 colours_important; 77 78 u32 red_mask; 79 u32 green_mask; 80 u32 blue_mask; 81 u32 alpha_mask; 82 83 u32 colour_space_type; 84 u32 cie_xyz_triples[9]; 85 u32 gamma_red; 86 u32 gamma_green; 87 u32 gamma_blue; 88 } rstd_bitmap_header; 89 #pragma pack(pop) 90 91 #endif /* RSTD_TYPES_H */