diff options
author | Jeroen Bakker <jeroen@blender.org> | 2020-10-26 17:54:00 +0300 |
---|---|---|
committer | Jeroen Bakker <jeroen@blender.org> | 2020-11-17 15:10:39 +0300 |
commit | 1e1c39fc89395c5e5a68a7a21500195cd8dc6fd5 (patch) | |
tree | a9b6d8e5cceb6a5bffb7d000499449be51fabed2 /source/blender/draw/engines/overlay/overlay_shader.c | |
parent | 8b6ce77f163cf0822af8a107a213e984ba4b3e97 (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.c | 13 |
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(); |