diff options
author | Clément Foucault <foucault.clem@gmail.com> | 2020-09-08 04:18:49 +0300 |
---|---|---|
committer | Clément Foucault <foucault.clem@gmail.com> | 2020-09-08 05:15:50 +0300 |
commit | ccc512cc619dc9f0e6fd79270a7a96ece34d23b5 (patch) | |
tree | da728c4f3745fc352a5e223502ca8734c3c1f01b /source/blender/gpu/intern | |
parent | ca8ffc523e3d08fc55c5cf000fa9fc3888950bf7 (diff) |
GPUImmediate: Make activation / deactivation implicit
This avoids unecessary complexity.
Also makes the GPUImmediate threadsafe by using a threadlocal imm variable.
Diffstat (limited to 'source/blender/gpu/intern')
-rw-r--r-- | source/blender/gpu/intern/gpu_immediate.cc | 12 | ||||
-rw-r--r-- | source/blender/gpu/intern/gpu_immediate_private.hh | 5 | ||||
-rw-r--r-- | source/blender/gpu/intern/gpu_init_exit.c | 8 |
3 files changed, 5 insertions, 20 deletions
diff --git a/source/blender/gpu/intern/gpu_immediate.cc b/source/blender/gpu/intern/gpu_immediate.cc index dd3e5bea604..9fc5e03a796 100644 --- a/source/blender/gpu/intern/gpu_immediate.cc +++ b/source/blender/gpu/intern/gpu_immediate.cc @@ -39,12 +39,7 @@ using namespace blender::gpu; -static Immediate *imm = NULL; - -void immInit(void) -{ - /* TODO Remove */ -} +static thread_local Immediate *imm = NULL; void immActivate(void) { @@ -56,11 +51,6 @@ void immDeactivate(void) imm = NULL; } -void immDestroy(void) -{ - /* TODO Remove */ -} - GPUVertFormat *immVertexFormat(void) { GPU_vertformat_clear(&imm->vertex_format); diff --git a/source/blender/gpu/intern/gpu_immediate_private.hh b/source/blender/gpu/intern/gpu_immediate_private.hh index aa99fb9a438..38db8131942 100644 --- a/source/blender/gpu/intern/gpu_immediate_private.hh +++ b/source/blender/gpu/intern/gpu_immediate_private.hh @@ -63,4 +63,7 @@ class Immediate { virtual void end(void) = 0; }; -} // namespace blender::gpu
\ No newline at end of file +} // namespace blender::gpu + +void immActivate(void); +void immDeactivate(void);
\ No newline at end of file diff --git a/source/blender/gpu/intern/gpu_init_exit.c b/source/blender/gpu/intern/gpu_init_exit.c index 129a66994b1..0eb2fe57c28 100644 --- a/source/blender/gpu/intern/gpu_init_exit.c +++ b/source/blender/gpu/intern/gpu_init_exit.c @@ -54,10 +54,6 @@ void GPU_init(void) gpu_batch_init(); - if (!G.background) { - immInit(); - } - #ifndef GPU_STANDALONE gpu_pbvh_init(); #endif @@ -69,10 +65,6 @@ void GPU_exit(void) gpu_pbvh_exit(); #endif - if (!G.background) { - immDestroy(); - } - gpu_batch_exit(); gpu_material_library_exit(); |