diff options
author | Clément Foucault <foucault.clem@gmail.com> | 2022-02-01 15:42:00 +0300 |
---|---|---|
committer | Clément Foucault <foucault.clem@gmail.com> | 2022-02-01 21:05:22 +0300 |
commit | 7475f7b0ded6587f4990551daf2b28a0c6f7dce9 (patch) | |
tree | 73e24dfe90788f9a8587709e258c00b126e37d89 | |
parent | 2110e271f52f641d98fc4f92afc0988b29806479 (diff) |
GPUShader: Expose create_info getter
This allows to check if a create_info extists based on its name.
-rw-r--r-- | source/blender/gpu/GPU_shader.h | 2 | ||||
-rw-r--r-- | source/blender/gpu/intern/gpu_shader.cc | 5 | ||||
-rw-r--r-- | source/blender/gpu/intern/gpu_shader_create_info.cc | 1 |
3 files changed, 8 insertions, 0 deletions
diff --git a/source/blender/gpu/GPU_shader.h b/source/blender/gpu/GPU_shader.h index 972758febd4..05c992274eb 100644 --- a/source/blender/gpu/GPU_shader.h +++ b/source/blender/gpu/GPU_shader.h @@ -71,6 +71,8 @@ GPUShader *GPU_shader_create_ex(const char *vertcode, GPUShader *GPU_shader_create_from_info(const GPUShaderCreateInfo *_info); GPUShader *GPU_shader_create_from_info_name(const char *info_name); +const GPUShaderCreateInfo *GPU_shader_create_info_get(const char *info_name); + struct GPU_ShaderCreateFromArray_Params { const char **vert, **geom, **frag, **defs; }; diff --git a/source/blender/gpu/intern/gpu_shader.cc b/source/blender/gpu/intern/gpu_shader.cc index ef800abc3c9..eb771bff6fa 100644 --- a/source/blender/gpu/intern/gpu_shader.cc +++ b/source/blender/gpu/intern/gpu_shader.cc @@ -249,6 +249,11 @@ GPUShader *GPU_shader_create_compute(const char *computecode, shname); } +const GPUShaderCreateInfo *GPU_shader_create_info_get(const char *info_name) +{ + return gpu_shader_create_info_get(info_name); +} + GPUShader *GPU_shader_create_from_info_name(const char *info_name) { using namespace blender::gpu::shader; diff --git a/source/blender/gpu/intern/gpu_shader_create_info.cc b/source/blender/gpu/intern/gpu_shader_create_info.cc index 252708bc96a..a158ccb13b7 100644 --- a/source/blender/gpu/intern/gpu_shader_create_info.cc +++ b/source/blender/gpu/intern/gpu_shader_create_info.cc @@ -302,6 +302,7 @@ const GPUShaderCreateInfo *gpu_shader_create_info_get(const char *info_name) { if (g_create_infos->contains(info_name) == false) { printf("Error: Cannot find shader create info named \"%s\"\n", info_name); + return nullptr; } ShaderCreateInfo *info = g_create_infos->lookup(info_name); return reinterpret_cast<const GPUShaderCreateInfo *>(info); |