Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'source/blender/draw/engines/image/image_shader.cc')
-rw-r--r--source/blender/draw/engines/image/image_shader.cc33
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