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:
authorJeroen Bakker <jeroen@blender.org>2020-10-26 17:54:00 +0300
committerJeroen Bakker <jeroen@blender.org>2020-11-17 15:10:39 +0300
commit1e1c39fc89395c5e5a68a7a21500195cd8dc6fd5 (patch)
treea9b6d8e5cceb6a5bffb7d000499449be51fabed2 /source/blender/draw/engines/overlay/overlay_shader.c
parent8b6ce77f163cf0822af8a107a213e984ba4b3e97 (diff)
Fix T82064: Add Image Clone tool to overlay engine
The clone tool in the image editor can show a second texture on top of the image. This wasn't ported and now results into alpha and depth issues. This fix adds the clone tool drawing to the overlay engine. Reviewed By: Clément Foucault Differential Revision: https://developer.blender.org/D9352
Diffstat (limited to 'source/blender/draw/engines/overlay/overlay_shader.c')
-rw-r--r--source/blender/draw/engines/overlay/overlay_shader.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/source/blender/draw/engines/overlay/overlay_shader.c b/source/blender/draw/engines/overlay/overlay_shader.c
index 5c1b7c786f4..f3840679d80 100644
--- a/source/blender/draw/engines/overlay/overlay_shader.c
+++ b/source/blender/draw/engines/overlay/overlay_shader.c
@@ -78,6 +78,7 @@ extern char datatoc_edit_uv_edges_frag_glsl[];
extern char datatoc_edit_uv_faces_vert_glsl[];
extern char datatoc_edit_uv_face_dots_vert_glsl[];
extern char datatoc_edit_uv_stretching_vert_glsl[];
+extern char datatoc_edit_uv_stencil_image_vert_glsl[];
extern char datatoc_edit_uv_tiled_image_borders_vert_glsl[];
extern char datatoc_extra_frag_glsl[];
extern char datatoc_extra_vert_glsl[];
@@ -183,6 +184,7 @@ typedef struct OVERLAY_Shaders {
GPUShader *edit_uv_stretching_angle;
GPUShader *edit_uv_stretching_area;
GPUShader *edit_uv_tiled_image_borders;
+ GPUShader *edit_uv_stencil_image;
GPUShader *extra;
GPUShader *extra_select;
GPUShader *extra_groundline;
@@ -237,6 +239,7 @@ void OVERLAY_shader_library_ensure(void)
/* NOTE: Theses needs to be ordered by dependencies. */
DRW_SHADER_LIB_ADD(e_data.lib, common_globals_lib);
DRW_SHADER_LIB_ADD(e_data.lib, common_overlay_lib);
+ DRW_SHADER_LIB_ADD(e_data.lib, common_colormanagement_lib);
DRW_SHADER_LIB_ADD(e_data.lib, common_view_lib);
}
}
@@ -1062,6 +1065,16 @@ GPUShader *OVERLAY_shader_grid_image(void)
return sh_data->grid_image;
}
+GPUShader *OVERLAY_shader_edit_uv_stencil_image(void)
+{
+ OVERLAY_Shaders *sh_data = &e_data.sh_data[0];
+ if (!sh_data->edit_uv_stencil_image) {
+ sh_data->edit_uv_stencil_image = DRW_shader_create_with_shaderlib(
+ datatoc_edit_uv_stencil_image_vert_glsl, NULL, datatoc_image_frag_glsl, e_data.lib, NULL);
+ }
+ return sh_data->edit_uv_stencil_image;
+}
+
GPUShader *OVERLAY_shader_image(void)
{
const DRWContextState *draw_ctx = DRW_context_state_get();