From fc08d62709fb9c3e00c9e37c6c9c5a54ecae7e99 Mon Sep 17 00:00:00 2001 From: 0scar Date: Tue, 30 Jul 2024 00:38:55 +0200 Subject: Extend renderbatch_add to handle multiple models --- src/rendering/src/rendering.c | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/rendering/src/rendering.c b/src/rendering/src/rendering.c index 0c1052a..06880fd 100644 --- a/src/rendering/src/rendering.c +++ b/src/rendering/src/rendering.c @@ -85,7 +85,21 @@ ShaderBuffer* shaderbuffer_cat(ShaderBuffer* dst, ShaderBuffer *restrict src) { // Assume that we single-handedly control the pointer to the data, copy and // free the stuff. - // + + // Verify the size + const isize sz_src = src->size_elem * src->count; + const isize sz_dst = dst->size_elem * dst->count; + if (sz_src + sz_dst >= dst->size) { + const isize sz_new = (1 + ((sz_src + sz_dst) / 4096)) * 4096; + // Resize dst size + dst->data = realloc(dst->data, sz_new); + dst->size = sz_new; + } + + memcpy(dst->data + sz_dst, src->data, sz_src); + + dst->count += src->count; + return dst; } -- cgit v1.3