diff options
author | Clément Foucault <foucault.clem@gmail.com> | 2019-01-16 06:41:27 +0300 |
---|---|---|
committer | Clément Foucault <foucault.clem@gmail.com> | 2019-01-17 21:44:01 +0300 |
commit | 4c9589909807f346e23966379f240dd57d057a1d (patch) | |
tree | 40bad4807d5b5cdd5e632f00562477bf7bb7754c /source/blender/gpu/intern/gpu_shader_interface.c | |
parent | 938b08b33654f6bc3419519fc364021115d19dba (diff) |
GPU: Rename GPU_shader_get_uniform to GPU_shader_get_uniform_ensure
This is in order to make the API more multithread friendly inside the
draw manager.
GPU_shader_get_uniform will only serve to query the shader interface and
not do any GL call, making it threadsafe.
For now it only print a warning if the uniform was not queried before.
Diffstat (limited to 'source/blender/gpu/intern/gpu_shader_interface.c')
-rw-r--r-- | source/blender/gpu/intern/gpu_shader_interface.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/source/blender/gpu/intern/gpu_shader_interface.c b/source/blender/gpu/intern/gpu_shader_interface.c index d46fc979363..7522c92eb93 100644 --- a/source/blender/gpu/intern/gpu_shader_interface.c +++ b/source/blender/gpu/intern/gpu_shader_interface.c @@ -311,8 +311,13 @@ void GPU_shaderinterface_discard(GPUShaderInterface *shaderface) const GPUShaderInput *GPU_shaderinterface_uniform(const GPUShaderInterface *shaderface, const char *name) { + return buckets_lookup(shaderface->uniform_buckets, shaderface->name_buffer, name); +} + +const GPUShaderInput *GPU_shaderinterface_uniform_ensure(const GPUShaderInterface *shaderface, const char *name) +{ /* TODO: Warn if we find a matching builtin, since these can be looked up much quicker. */ - const GPUShaderInput *input = buckets_lookup(shaderface->uniform_buckets, shaderface->name_buffer, name); + const GPUShaderInput *input = GPU_shaderinterface_uniform(shaderface, name); /* If input is not found add it so it's found next time. */ if (input == NULL) { input = add_uniform((GPUShaderInterface *)shaderface, name); |