diff options
Diffstat (limited to 'source/blender/draw/engines/image/image_shader.cc')
-rw-r--r-- | source/blender/draw/engines/image/image_shader.cc | 33 |
1 files changed, 10 insertions, 23 deletions
diff --git a/source/blender/draw/engines/image/image_shader.cc b/source/blender/draw/engines/image/image_shader.cc index e3cb60c5511..952843d7dd7 100644 --- a/source/blender/draw/engines/image/image_shader.cc +++ b/source/blender/draw/engines/image/image_shader.cc @@ -29,44 +29,33 @@ #include "image_engine.h" #include "image_private.hh" -extern "C" { -extern char datatoc_common_colormanagement_lib_glsl[]; -extern char datatoc_common_globals_lib_glsl[]; -extern char datatoc_common_view_lib_glsl[]; - -extern char datatoc_engine_image_frag_glsl[]; -extern char datatoc_engine_image_vert_glsl[]; -} - namespace blender::draw::image_engine { struct IMAGE_Shaders { GPUShader *image_sh; + GPUShader *depth_sh; }; static struct { IMAGE_Shaders shaders; - DRWShaderLibrary *lib; } e_data = {{nullptr}}; /* Engine data */ -void IMAGE_shader_library_ensure() +GPUShader *IMAGE_shader_image_get() { - if (e_data.lib == nullptr) { - e_data.lib = DRW_shader_library_create(); - /* NOTE: These need to be ordered by dependencies. */ - DRW_SHADER_LIB_ADD(e_data.lib, common_colormanagement_lib); - DRW_SHADER_LIB_ADD(e_data.lib, common_globals_lib); - DRW_SHADER_LIB_ADD(e_data.lib, common_view_lib); + IMAGE_Shaders *sh_data = &e_data.shaders; + if (sh_data->image_sh == nullptr) { + sh_data->image_sh = GPU_shader_create_from_info_name("image_engine_color_shader"); } + return sh_data->image_sh; } -GPUShader *IMAGE_shader_image_get() +GPUShader *IMAGE_shader_depth_get() { IMAGE_Shaders *sh_data = &e_data.shaders; - if (sh_data->image_sh == nullptr) { - sh_data->image_sh = GPU_shader_create_from_info_name("image_engine_shader"); + if (sh_data->depth_sh == nullptr) { + sh_data->depth_sh = GPU_shader_create_from_info_name("image_engine_depth_shader"); } - return sh_data->image_sh; + return sh_data->depth_sh; } void IMAGE_shader_free() @@ -75,8 +64,6 @@ void IMAGE_shader_free() for (int i = 0; i < (sizeof(IMAGE_Shaders) / sizeof(GPUShader *)); i++) { DRW_SHADER_FREE_SAFE(sh_data_as_array[i]); } - - DRW_SHADER_LIB_FREE_SAFE(e_data.lib); } } // namespace blender::draw::image_engine |