ogl_beamforming

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

Commit: 34ed5585c8ee66a1f734f7f9fe3c1b2fbf9b104c
Parent: e76ab3de660a7e5b78b62ef106e2f863a20aaa88
Author: Randy Palamar
Date:   Thu, 20 Aug 2026 18:33:18 -0700

util: allow push_* and friends to take optional arguments

Diffstat:
Mutil.c | 28+++++++++++-----------------
1 file changed, 11 insertions(+), 17 deletions(-)

diff --git a/util.c b/util.c @@ -147,12 +147,12 @@ typedef struct { ArenaAllocateFlags flags; } ArenaAllocateInfo; -#define bump_arena_alloc(a, ...) bump_arena_alloc_(a, (ArenaAllocateInfo){.align = 8, .count = 1, ##__VA_ARGS__}) -#define gpu_arena_alloc(a, ...) bump_arena_alloc_(a, (ArenaAllocateInfo){.flags = ArenaAllocateFlags_NoZero, .align = 8, .count = 1, ##__VA_ARGS__}) -#define bump_push_array(a, t, n) (t *)bump_arena_alloc(a, .size = sizeof(t), .align = alignof(t), .count = n) -#define bump_push_array_no_zero(a, t, n) (t *)bump_arena_alloc(a, .size = sizeof(t), .align = alignof(t), .count = n, .flags = ArenaAllocateFlags_NoZero) -#define bump_push_struct(a, t) bump_push_array(a, t, 1) -#define bump_push_struct_no_zero(a, t) bump_push_array_no_zero(a, t, 1) +#define bump_arena_alloc(a, ...) bump_arena_alloc_(a, (ArenaAllocateInfo){.align = 8, .count = 1, __VA_ARGS__}) +#define gpu_arena_alloc(a, ...) bump_arena_alloc_(a, (ArenaAllocateInfo){.flags = ArenaAllocateFlags_NoZero, .align = 8, .count = 1, __VA_ARGS__}) +#define bump_push_array(a, t, n, ...) (t *)bump_arena_alloc(a, .size = sizeof(t), .align = alignof(t), .count = n, __VA_ARGS__) +#define bump_push_array_no_zero(a, t, n, ...) (t *)bump_arena_alloc(a, .size = sizeof(t), .align = alignof(t), .count = n, .flags = ArenaAllocateFlags_NoZero, __VA_ARGS__) +#define bump_push_struct(a, t, ...) bump_push_array(a, t, 1, __VA_ARGS__) +#define bump_push_struct_no_zero(a, t, ...) bump_push_array_no_zero(a, t, 1, __VA_ARGS__) function void * bump_arena_alloc_(BumpArena *a, ArenaAllocateInfo info) @@ -180,12 +180,6 @@ arena_commit(Arena *a, i64 size) return result; } -#define arena_alloc(a, ...) arena_alloc_(a, (ArenaAllocateInfo){.align = 8, .count = 1, ##__VA_ARGS__}) -#define push_array(a, t, n) (t *)arena_alloc(a, .size = sizeof(t), .align = alignof(t), .count = n) -#define push_array_no_zero(a, t, n) (t *)arena_alloc(a, .size = sizeof(t), .align = alignof(t), .count = n, .flags = ArenaAllocateFlags_NoZero) -#define push_struct(a, t) push_array(a, t, 1) -#define push_struct_no_zero(a, t) push_array_no_zero(a, t, 1) - #define arena_create(...) arena_create_((ArenaParameters){\ .reserve_size = MB(64),\ .commit_size = KB(64),\ @@ -248,11 +242,11 @@ arena_seal(Arena *arena) os_memory_seal(arena, arena->reserved); } -#define arena_alloc(a, ...) arena_alloc_(a, (ArenaAllocateInfo){.align = 8, .count = 1, ##__VA_ARGS__}) -#define push_array(a, t, n) (t *)arena_alloc(a, .size = sizeof(t), .align = alignof(t), .count = n) -#define push_array_no_zero(a, t, n) (t *)arena_alloc(a, .size = sizeof(t), .align = alignof(t), .count = n, .flags = ArenaAllocateFlags_NoZero) -#define push_struct(a, t) push_array(a, t, 1) -#define push_struct_no_zero(a, t) push_array_no_zero(a, t, 1) +#define arena_alloc(a, ...) arena_alloc_(a, (ArenaAllocateInfo){.align = 8, .count = 1, __VA_ARGS__}) +#define push_array(a, t, n, ...) (t *)arena_alloc(a, .size = sizeof(t), .align = alignof(t), .count = n, __VA_ARGS__) +#define push_array_no_zero(a, t, n, ...) (t *)arena_alloc(a, .size = sizeof(t), .align = alignof(t), .count = n, .flags = ArenaAllocateFlags_NoZero, __VA_ARGS__) +#define push_struct(a, t, ...) push_array(a, t, 1, __VA_ARGS__) +#define push_struct_no_zero(a, t, ...) push_array_no_zero(a, t, 1, __VA_ARGS__) function void * arena_alloc_(Arena *arena, ArenaAllocateInfo info)