diff options
author | talha <sarcxd@gmail.com> | 2025-01-15 14:26:29 +0500 |
---|---|---|
committer | talha <sarcxd@gmail.com> | 2025-01-15 14:26:29 +0500 |
commit | d718dc1cfc04f1eabce48159f258a7f2dc281fc3 (patch) | |
tree | bd611715982f37bc22811cfde4ad508d69dbec6f /source/array/array.cpp | |
parent | 7d26a3cc6cfd9c207693ef977b0f0922d52e1d5c (diff) |
Added IVec, setting up level editing
Diffstat (limited to 'source/array/array.cpp')
-rw-r--r-- | source/array/array.cpp | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/source/array/array.cpp b/source/array/array.cpp new file mode 100644 index 0000000..ac7fd9a --- /dev/null +++ b/source/array/array.cpp @@ -0,0 +1,50 @@ +#include "array.h" + +// :r32_array_functions +void array_init(Arena* a, r32_array* arr, size_t capacity) { + arr->buffer = (r32*)arena_alloc(a, capacity*sizeof(r32)); + + assert(arr->buffer != NULL); + + arr->size = 0; + arr->capacity = capacity; +} + +void array_insert(r32_array* arr, r32* ele, size_t ele_size) { + b8 assert_cond = arr->size + ele_size <= arr->capacity; + assert(assert_cond); + + void* ptr = &arr->buffer[arr->size]; + memcpy(ptr, ele, sizeof(r32)*ele_size); + arr->size += ele_size; +} + +void array_clear(r32_array* arr) { + memset(arr->buffer, 0, sizeof(r32)*arr->capacity); + arr->size = 0; +} + +// :u32_array_functions +void array_init(Arena* a, u32_array* arr, size_t capacity) { + arr->buffer = (u32*)arena_alloc(a, capacity*sizeof(r32)); + + assert(arr->buffer != NULL); + + arr->size = 0; + arr->capacity = capacity; +} + +void array_insert(u32_array* arr, u32* ele, size_t ele_size) { + b8 assert_cond = arr->size + ele_size <= arr->capacity; + assert(assert_cond); + + void* ptr = &arr->buffer[arr->size]; + memcpy(ptr, ele, sizeof(u32)*ele_size); + arr->size += ele_size; +} + +void array_clear(u32_array* arr) { + memset(arr->buffer, 0, sizeof(u32)*arr->capacity); + arr->size = 0; +} + |