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>2020-08-10 12:41:22 +0300
committerClément Foucault <foucault.clem@gmail.com>2020-08-13 15:20:24 +0300
commit47bfb0f7ad2f70017585fe55a68e49ae09f1150c (patch)
tree3840e9e93bb3a1cc18735b512356fd4ec86108c8 /source/blender/gpu/intern/gpu_batch.cc
parent9443da6166f58403eab07c7bff9eac55af04f981 (diff)
GPUBatch: Move allocator to backend
Diffstat (limited to 'source/blender/gpu/intern/gpu_batch.cc')
-rw-r--r--source/blender/gpu/intern/gpu_batch.cc14
1 files changed, 10 insertions, 4 deletions
diff --git a/source/blender/gpu/intern/gpu_batch.cc b/source/blender/gpu/intern/gpu_batch.cc
index 0a802946913..27196413b20 100644
--- a/source/blender/gpu/intern/gpu_batch.cc
+++ b/source/blender/gpu/intern/gpu_batch.cc
@@ -33,6 +33,7 @@
#include "GPU_platform.h"
#include "GPU_shader.h"
+#include "gpu_backend.hh"
#include "gpu_batch_private.hh"
#include "gpu_context_private.hh"
#include "gpu_primitive_private.h"
@@ -43,6 +44,8 @@
#include <stdlib.h>
#include <string.h>
+using namespace blender::gpu;
+
static GLuint g_default_attr_vbo = 0;
static void gpu_batch_bind(GPUBatch *batch);
@@ -86,9 +89,11 @@ void GPU_batch_vao_cache_clear(GPUBatch *batch)
batch->context = NULL;
}
-GPUBatch *GPU_batch_calloc(uint count)
+GPUBatch *GPU_batch_calloc(void)
{
- return (GPUBatch *)MEM_callocN(sizeof(GPUBatch) * count, "GPUBatch");
+ GPUBatch *batch = GPUBackend::get()->batch_alloc();
+ memset(batch, 0, sizeof(*batch));
+ return batch;
}
GPUBatch *GPU_batch_create_ex(GPUPrimType prim_type,
@@ -96,7 +101,7 @@ GPUBatch *GPU_batch_create_ex(GPUPrimType prim_type,
GPUIndexBuf *elem,
eGPUBatchFlag owns_flag)
{
- GPUBatch *batch = GPU_batch_calloc(1);
+ GPUBatch *batch = GPU_batch_calloc();
GPU_batch_init_ex(batch, prim_type, verts, elem, owns_flag);
return batch;
}
@@ -163,7 +168,8 @@ void GPU_batch_clear(GPUBatch *batch)
void GPU_batch_discard(GPUBatch *batch)
{
GPU_batch_clear(batch);
- MEM_freeN(batch);
+
+ delete static_cast<Batch *>(batch);
}
/* NOTE: Override ONLY the first instance vbo (and free them if owned). */