ogl_beamforming

Ultrasound Beamforming Implemented with OpenGL
git clone anongit@rnpnr.xyz:ogl_beamforming.git
Log | Files | Refs | Feed | Submodules | README | LICENSE

meta.h (2020B)


      1 /* See LICENSE for license details. */
      2 #define META_KIND_LIST \
      3 	X(M4,  m4,   f32mat4,   float,    single, 64, 16) \
      4 	X(V4,  v4,   f32vec4,   float,    single, 16,  4) \
      5 	X(SV4, iv4,  i32vec4,   int32_t,  int32,  16,  4) \
      6 	X(UV4, uv4,  u32vec4,   uint32_t, uint32, 16,  4) \
      7 	X(UV2, uv2,  u32vec2,   uint32_t, uint32,  8,  2) \
      8 	X(V3,  v3,   f32vec3,   float,    single, 12,  3) \
      9 	X(V2,  v2,   f32vec2,   float,    single,  8,  2) \
     10 	X(F64, f64,  float64_t, double,   double,  8,  1) \
     11 	X(F32, f32,  float32_t, float,    single,  4,  1) \
     12 	X(F16, f16,  float16_t, _Float16, half,    2,  1) \
     13 	X(S32, i32,  int32_t,   int32_t,  int32,   4,  1) \
     14 	X(S16, i16,  int16_t,   int16_t,  int16,   2,  1) \
     15 	X(S8,  i8,   int8_t,    int8_t,   int8,    1,  1) \
     16 	X(B64, b64,  uint64_t,  uint64_t, uint64,  8,  1) \
     17 	X(B32, b32,  bool,      uint32_t, uint32,  4,  1) \
     18 	X(B16, b16,  uint16_t,  uint16_t, uint16,  2,  1) \
     19 	X(B8,  b8,   uint8_t,   uint8_t,  uint8,   1,  1) \
     20 	X(U64, u64,  uint64_t,  uint64_t, uint64,  8,  1) \
     21 	X(U32, u32,  uint32_t,  uint32_t, uint32,  4,  1) \
     22 	X(U16, u16,  uint16_t,  uint16_t, uint16,  2,  1) \
     23 	X(U8,  u8,   uint8_t,   uint8_t,  uint8,   1,  1) \
     24 	X(STR, str8, error,     error,    error,  16,  1) \
     25 
     26 read_only global str8 meta_kind_glsl_types[] = {
     27 	#define X(_k, _c, glsl, ...) str8_comp(#glsl),
     28 	META_KIND_LIST
     29 	#undef X
     30 };
     31 
     32 read_only global u8 meta_kind_byte_sizes[] = {
     33 	#define X(_k, _c, _g, _b, _m, bytes, ...) bytes,
     34 	META_KIND_LIST
     35 	#undef X
     36 };
     37 
     38 typedef enum {
     39 	#define X(k, ...) MetaKind_## k,
     40 	META_KIND_LIST
     41 	#undef X
     42 	MetaKind_Count,
     43 } MetaKind;
     44 
     45 typedef enum {
     46 	MetaStructMemberFlag_ReferenceType = 1 << 0,
     47 } MetaStructMemberFlags;
     48 
     49 typedef enum {
     50 	MetaStructFlag_Union         = 1 << 0,
     51 	MetaStructFlag_ContainsUnion = 1 << 1,
     52 } MetaStructFlags;
     53 
     54 typedef struct {
     55 	u32 type_id;
     56 	u32 offset;
     57 	u32 elements;
     58 	u32 flags;
     59 } MetaStructMember;
     60 
     61 typedef struct {
     62 	str8            name;
     63 	u32             member_count;
     64 	u32             size;
     65 	MetaStructFlags flags;
     66 } MetaStructInfo;