diff options
author | Jon Denning <gfxcoder> | 2021-09-13 09:12:12 +0300 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2021-09-13 09:16:45 +0300 |
commit | e0394761b954759f8723bdc8f4a1686bf70954ed (patch) | |
tree | 1f7194aa0cac107ebb3cb83acd414a212a4764d3 /source/blender/gpu | |
parent | b5a1c194c5dde20b13e3dd3372055d8b5e58a18e (diff) |
GPUShader: Expose name for debugging & identifying shaders
Added optional `name` argument to `GPUShader` constructor
(defaults to `pyGPUShader`), and added `name` getter to `GPUShader`.
Ref D12393
Reviewed By: campbellbarton, jbakker
Diffstat (limited to 'source/blender/gpu')
-rw-r--r-- | source/blender/gpu/GPU_shader.h | 5 | ||||
-rw-r--r-- | source/blender/gpu/intern/gpu_shader.cc | 19 |
2 files changed, 21 insertions, 3 deletions
diff --git a/source/blender/gpu/GPU_shader.h b/source/blender/gpu/GPU_shader.h index f834ee5b234..62b748b7edf 100644 --- a/source/blender/gpu/GPU_shader.h +++ b/source/blender/gpu/GPU_shader.h @@ -54,7 +54,8 @@ GPUShader *GPU_shader_create_from_python(const char *vertcode, const char *fragcode, const char *geomcode, const char *libcode, - const char *defines); + const char *defines, + const char *name); GPUShader *GPU_shader_create_ex(const char *vertcode, const char *fragcode, const char *geomcode, @@ -85,6 +86,8 @@ void GPU_shader_free(GPUShader *shader); void GPU_shader_bind(GPUShader *shader); void GPU_shader_unbind(void); +const char *GPU_shader_get_name(GPUShader *shader); + /* Returns true if transform feedback was successfully enabled. */ bool GPU_shader_transform_feedback_enable(GPUShader *shader, struct GPUVertBuf *vertbuf); void GPU_shader_transform_feedback_disable(GPUShader *shader); diff --git a/source/blender/gpu/intern/gpu_shader.cc b/source/blender/gpu/intern/gpu_shader.cc index c754a649924..9340d311472 100644 --- a/source/blender/gpu/intern/gpu_shader.cc +++ b/source/blender/gpu/intern/gpu_shader.cc @@ -229,7 +229,8 @@ GPUShader *GPU_shader_create_from_python(const char *vertcode, const char *fragcode, const char *geomcode, const char *libcode, - const char *defines) + const char *defines, + const char *name) { char *libcodecat = nullptr; @@ -240,6 +241,9 @@ GPUShader *GPU_shader_create_from_python(const char *vertcode, libcode = libcodecat = BLI_strdupcat(libcode, datatoc_gpu_shader_colorspace_lib_glsl); } + /* Use pyGPUShader as default name for shader. */ + const char *shname = name != nullptr ? name : "pyGPUShader"; + GPUShader *sh = GPU_shader_create_ex(vertcode, fragcode, geomcode, @@ -249,7 +253,7 @@ GPUShader *GPU_shader_create_from_python(const char *vertcode, GPU_SHADER_TFB_NONE, nullptr, 0, - "pyGPUShader"); + shname); MEM_SAFE_FREE(libcodecat); return sh; @@ -369,6 +373,17 @@ void GPU_shader_unbind(void) /** \} */ /* -------------------------------------------------------------------- */ +/** \name Shader name + * \{ */ + +const char *GPU_shader_get_name(GPUShader *shader) +{ + return unwrap(shader)->name_get(); +} + +/** \} */ + +/* -------------------------------------------------------------------- */ /** \name Transform feedback * * TODO(fclem): Should be replaced by compute shaders. |