diff options
author | Clément Foucault <foucault.clem@gmail.com> | 2020-08-10 12:41:22 +0300 |
---|---|---|
committer | Clément Foucault <foucault.clem@gmail.com> | 2020-08-13 15:20:24 +0300 |
commit | 47bfb0f7ad2f70017585fe55a68e49ae09f1150c (patch) | |
tree | 3840e9e93bb3a1cc18735b512356fd4ec86108c8 /source/blender/gpu/intern/gpu_batch.cc | |
parent | 9443da6166f58403eab07c7bff9eac55af04f981 (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.cc | 14 |
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). */ |