7#include "../../../build/release-unity/SD/generated/SD/export.hpp"
13 return (x + b - 1) & ~(b - 1);
30FORCE_INLINE T
constexpr min(T a, T b) {
35FORCE_INLINE T
constexpr max(T a, T b) {
49FORCE_INLINE T
constexpr clamp(T a, T x, T b) {
73 const char*
name =
nullptr;
98 void* push(
this Arena& arena,
U64 size,
U64 align,
bool zero);
100 void pop_to(
this Arena& arena,
U64 pos);
101 void clear(
this Arena& arena);
102 void pop(
this Arena& arena,
U64 amount);
104 [[nodiscard]]
Temp temp_begin(
this Arena& arena);
109 return static_cast<T*
>(arena.
push(
sizeof(T) * count, align,
false));
113 return static_cast<T*
>(arena.
push(
sizeof(T) * count, align,
true));
FORCE_INLINE T constexpr align_pow2(T x, T b)
Definition arena.hpp:12
T * arena_push(Arena *arena)
Definition arena.hpp:126
ArenaFlags
Definition arena.hpp:60
SD_EXPORT Arena * arena_alloc(ArenaParams params={})
Definition arena.cpp:91
FORCE_INLINE T constexpr clamp_bot(T x, T b)
Definition arena.hpp:44
consteval U64 mb(U64 n)
Definition arena.hpp:19
T * arena_push_no_zero(Arena *arena)
Definition arena.hpp:130
consteval U64 gb(U64 n)
Definition arena.hpp:22
FORCE_INLINE T constexpr clamp(T a, T x, T b)
Definition arena.hpp:49
FORCE_INLINE T constexpr min(T a, T b)
Definition arena.hpp:30
consteval U64 tb(U64 n)
Definition arena.hpp:25
consteval U64 kb(U64 n)
Definition arena.hpp:16
FORCE_INLINE T constexpr clamp_top(T a, T x)
Definition arena.hpp:40
SD_EXPORT void arena_release(Arena *arena)
Definition arena.cpp:142
FORCE_INLINE T constexpr max(T a, T b)
Definition arena.hpp:35
#define BITMASK_ENUM(Type)
Definition base.hpp:42
ArenaFlags flags
Definition arena.hpp:68
sd::SourceLocation location
Definition arena.hpp:72
void * optional_backing_buffer
Definition arena.hpp:71
U64 reserve_size
Definition arena.hpp:69
U64 commit_size
Definition arena.hpp:70
const char * name
Definition arena.hpp:73
T * push_array(this Arena &arena, U64 count)
Definition arena.hpp:120
void * push(this Arena &arena, U64 size, U64 align, bool zero)
Definition arena.cpp:150
U64 position
Definition arena.hpp:92
T * push_array_no_zero(this Arena &arena, U64 count)
Definition arena.hpp:116
U64 reserved
Definition arena.hpp:94
U64 reserve_size
Definition arena.hpp:90
U64 commit_size
Definition arena.hpp:89
sd::SourceLocation location
Definition arena.hpp:95
ArenaFlags flags
Definition arena.hpp:88
T * push_array_no_zero_aligned(this Arena &arena, U64 count, U64 align)
Definition arena.hpp:108
Arena * current
Definition arena.hpp:87
U64 committed
Definition arena.hpp:93
T * push_array_aligned(this Arena &arena, U64 count, U64 align)
Definition arena.hpp:112
Arena * prev
Definition arena.hpp:86
U64 base_position
Definition arena.hpp:91
const char * name
Definition arena.hpp:96
Arena * arena
Definition arena.hpp:79
void end(this Temp temp)
Definition arena.cpp:260
U64 pos
Definition arena.hpp:80
static consteval SourceLocation current(const char *file=__builtin_FILE(), unsigned line=__builtin_LINE())
Definition base.hpp:152
std::uint64_t U64
Definition types.hpp:16