diff options
author | Sergey Sharybin <sergey@blender.org> | 2022-02-01 13:04:38 +0300 |
---|---|---|
committer | Sergey Sharybin <sergey@blender.org> | 2022-02-01 13:04:38 +0300 |
commit | 34449ba9a68a6ca5bbd366d199d4a3aac9ebc073 (patch) | |
tree | a8e3123518dc7ac79197ea032fc561d8b2409d7f /source/blender/draw/engines | |
parent | 120deaac5babbce9625541f470ce3e4d5363c996 (diff) | |
parent | 6f9828289f397228c6cab6f352fb4a84a65da22a (diff) |
Merge branch 'blender-v3.1-release'
Diffstat (limited to 'source/blender/draw/engines')
3 files changed, 9 insertions, 3 deletions
diff --git a/source/blender/draw/engines/image/image_private.hh b/source/blender/draw/engines/image/image_private.hh index d8f8adb7e84..d586515c6be 100644 --- a/source/blender/draw/engines/image/image_private.hh +++ b/source/blender/draw/engines/image/image_private.hh @@ -54,6 +54,8 @@ struct IMAGE_Data { #define IMAGE_DRAW_FLAG_APPLY_ALPHA (1 << 1) #define IMAGE_DRAW_FLAG_SHUFFLING (1 << 2) #define IMAGE_DRAW_FLAG_DEPTH (1 << 3) +/** Flag to disable depth testing (used for node editor back drop drawing).*/ +#define IMAGE_DRAW_FLAG_DEPTH_ALWAYS (1 << 4) /** * Abstract class for a drawing mode of the image engine. diff --git a/source/blender/draw/engines/image/image_space_node.hh b/source/blender/draw/engines/image/image_space_node.hh index 15eef8f6499..b0da3d1055b 100644 --- a/source/blender/draw/engines/image/image_space_node.hh +++ b/source/blender/draw/engines/image/image_space_node.hh @@ -56,6 +56,7 @@ class SpaceNodeAccessor : public AbstractSpaceAccessor { void get_shader_parameters(ShaderParameters &r_shader_parameters, ImBuf *ibuf) override { + r_shader_parameters.flags |= IMAGE_DRAW_FLAG_DEPTH_ALWAYS; if ((snode->flag & SNODE_USE_ALPHA) != 0) { /* Show RGBA */ r_shader_parameters.flags |= IMAGE_DRAW_FLAG_SHOW_ALPHA | IMAGE_DRAW_FLAG_APPLY_ALPHA; diff --git a/source/blender/draw/engines/image/shaders/image_engine_color_frag.glsl b/source/blender/draw/engines/image/shaders/image_engine_color_frag.glsl index 0edc18836f0..65fd4833b23 100644 --- a/source/blender/draw/engines/image/shaders/image_engine_color_frag.glsl +++ b/source/blender/draw/engines/image/shaders/image_engine_color_frag.glsl @@ -5,6 +5,7 @@ #define IMAGE_DRAW_FLAG_APPLY_ALPHA (1 << 1) #define IMAGE_DRAW_FLAG_SHUFFLING (1 << 2) #define IMAGE_DRAW_FLAG_DEPTH (1 << 3) +#define IMAGE_DRAW_FLAG_DEPTH_ALWAYS (1 << 4) #define FAR_DISTANCE farNearDistances.x #define NEAR_DISTANCE farNearDistances.y @@ -12,9 +13,11 @@ void main() { ivec2 uvs_clamped = ivec2(uv_screen); - float depth = texelFetch(depth_texture, uvs_clamped, 0).r; - if (depth == 1.0) { - discard; + if ((drawFlags & IMAGE_DRAW_FLAG_DEPTH_ALWAYS) == 0) { + float depth = texelFetch(depth_texture, uvs_clamped, 0).r; + if (depth == 1.0) { + discard; + } } vec4 tex_color = texelFetch(imageTexture, uvs_clamped, 0); |