From c09913e9ddc2d93894549923a90ee471c3a368db Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cl=C3=A9ment=20Foucault?= Date: Fri, 14 Dec 2018 00:07:59 +0100 Subject: [PATCH] GPUBatch: Add GPU_batch_clear to clear batches without freeing --- source/blender/gpu/GPU_batch.h | 1 + source/blender/gpu/intern/gpu_batch.c | 7 ++++++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/source/blender/gpu/GPU_batch.h b/source/blender/gpu/GPU_batch.h index 5f87523829a..d47df08afb6 100644 --- a/source/blender/gpu/GPU_batch.h +++ b/source/blender/gpu/GPU_batch.h @@ -107,6 +107,7 @@ GPUBatch *GPU_batch_duplicate(GPUBatch *batch_src); #define GPU_batch_init(batch, prim, verts, elem) \ GPU_batch_init_ex(batch, prim, verts, elem, 0) +void GPU_batch_clear(GPUBatch *); /* Same as discard but does not free. */ void GPU_batch_discard(GPUBatch *); /* verts & elem are not discarded */ void GPU_batch_vao_cache_clear(GPUBatch *); diff --git a/source/blender/gpu/intern/gpu_batch.c b/source/blender/gpu/intern/gpu_batch.c index 2cbeeb26924..d70752e9b2f 100644 --- a/source/blender/gpu/intern/gpu_batch.c +++ b/source/blender/gpu/intern/gpu_batch.c @@ -125,7 +125,7 @@ GPUBatch *GPU_batch_duplicate(GPUBatch *batch_src) return batch; } -void GPU_batch_discard(GPUBatch *batch) +void GPU_batch_clear(GPUBatch *batch) { if (batch->owns_flag & GPU_BATCH_OWNS_INDEX) { GPU_indexbuf_discard(batch->elem); @@ -148,6 +148,11 @@ void GPU_batch_discard(GPUBatch *batch) if (batch->free_callback) { batch->free_callback(batch, batch->callback_data); } +} + +void GPU_batch_discard(GPUBatch *batch) +{ + GPU_batch_clear(batch); MEM_freeN(batch); }