[Bf-blender-cvs] [66fe1c79f3c] master: Compositor: Fix Composite node using alpha when "Use Alpha" is off

Manuel Castilla noreply at git.blender.org
Fri Oct 1 00:10:48 CEST 2021


Commit: 66fe1c79f3ce225da5d237ac1371e26920c9cb56
Author: Manuel Castilla
Date:   Thu Sep 30 22:30:25 2021 +0200
Branches: master
https://developer.blender.org/rB66fe1c79f3ce225da5d237ac1371e26920c9cb56

Compositor: Fix Composite node using alpha when "Use Alpha" is off

Alpha input was not receiving the final composite canvas 
as preferred causing a Translate operation being inserted 
for centering. This resulted in a transparent background.
The issue only affects Full Frame mode.

===================================================================

M	source/blender/compositor/operations/COM_CompositorOperation.cc

===================================================================

diff --git a/source/blender/compositor/operations/COM_CompositorOperation.cc b/source/blender/compositor/operations/COM_CompositorOperation.cc
index 52bc9ed6c2f..f7466b5db34 100644
--- a/source/blender/compositor/operations/COM_CompositorOperation.cc
+++ b/source/blender/compositor/operations/COM_CompositorOperation.cc
@@ -256,8 +256,16 @@ void CompositorOperation::determine_canvas(const rcti &UNUSED(preferred_area), r
   rcti local_preferred;
   BLI_rcti_init(&local_preferred, 0, width, 0, height);
 
-  NodeOperation::determine_canvas(local_preferred, r_area);
-  r_area = local_preferred;
+  switch (execution_model_) {
+    case eExecutionModel::Tiled:
+      NodeOperation::determine_canvas(local_preferred, r_area);
+      r_area = local_preferred;
+      break;
+    case eExecutionModel::FullFrame:
+      set_determined_canvas_modifier([&](rcti &canvas) { canvas = local_preferred; });
+      NodeOperation::determine_canvas(local_preferred, r_area);
+      break;
+  }
 }
 
 }  // namespace blender::compositor



More information about the Bf-blender-cvs mailing list