Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorClément Foucault <foucault.clem@gmail.com>2018-12-14 02:07:59 +0300
committerClément Foucault <foucault.clem@gmail.com>2018-12-14 18:17:29 +0300
commitc09913e9ddc2d93894549923a90ee471c3a368db (patch)
tree8b3b62739e8f6c4dc65b21db70b3b632f5140877 /source/blender
parent0ee0f0ebf6a9bb1596813788c3b0e5acabaaa4f7 (diff)
GPUBatch: Add GPU_batch_clear to clear batches without freeing
Diffstat (limited to 'source/blender')
-rw-r--r--source/blender/gpu/GPU_batch.h1
-rw-r--r--source/blender/gpu/intern/gpu_batch.c7
2 files changed, 7 insertions, 1 deletions
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);
}