From 3ffa0452af9ac0a08b321e9504c9e080ab1ce47d Mon Sep 17 00:00:00 2001 From: Jeroen Bakker Date: Tue, 3 Nov 2020 14:39:50 +0100 Subject: Fix T67832: Camera Background Images View Transform MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This patch will apply the view transform when a movie clip is used as camera background image. It does this by rendering the image in the color buffer when it needs the view transform. For other images it uses the overlay buffer. Reviewed By: Clément Foucault Differential Revision: https://developer.blender.org/D7067 --- source/blender/gpu/GPU_state.h | 1 + source/blender/gpu/opengl/gl_state.cc | 7 +++++++ 2 files changed, 8 insertions(+) (limited to 'source/blender/gpu') diff --git a/source/blender/gpu/GPU_state.h b/source/blender/gpu/GPU_state.h index b7bea4b0a08..f5a1ccbc40b 100644 --- a/source/blender/gpu/GPU_state.h +++ b/source/blender/gpu/GPU_state.h @@ -71,6 +71,7 @@ typedef enum eGPUBlend { /** Custom blend parameters using dual source blending : SRC0 + SRC1 * DST * NOTE: Can only be used with _ONE_ Draw Buffer and shader needs to be specialized. */ GPU_BLEND_CUSTOM, + GPU_BLEND_ALPHA_UNDER_PREMUL, } eGPUBlend; typedef enum eGPUDepthTest { diff --git a/source/blender/gpu/opengl/gl_state.cc b/source/blender/gpu/opengl/gl_state.cc index 27c9b501add..3a474da8b8e 100644 --- a/source/blender/gpu/opengl/gl_state.cc +++ b/source/blender/gpu/opengl/gl_state.cc @@ -421,6 +421,13 @@ void GLStateManager::set_blend(const eGPUBlend value) dst_alpha = GL_SRC_ALPHA; break; } + case GPU_BLEND_ALPHA_UNDER_PREMUL: { + src_rgb = GL_ONE_MINUS_DST_ALPHA; + dst_rgb = GL_ONE; + src_alpha = GL_ONE_MINUS_DST_ALPHA; + dst_alpha = GL_ONE; + break; + } case GPU_BLEND_CUSTOM: { src_rgb = GL_ONE; dst_rgb = GL_SRC1_COLOR; -- cgit v1.2.3