From 005dabbd9ad51b75aef260168c81d5a826d4eb4f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lukas=20T=C3=B6nne?= Date: Fri, 25 Apr 2014 12:00:35 +0200 Subject: Fix T39799: Backdrop (compositor) ignores alpha. This issue is because of a somewhat "special" behavior in old code, which got lost during rB09874df: There was a variant of the `relinkConnections` function which would leave the socket completely unconnected. This is not a valid state really (given that each unconnected input must otherwise connected to a constant `Set` type node), but was used as a way to distinguish connected alpha/depth sockets in composite and viewer output nodes. https://developer.blender.org/diffusion/B/browse/master/source/blender/compositor/intern/COM_InputSocket.cpp;28a829893c702918afc5ac1945a06eaefa611594$69 After the large cleanup patch ({D309}) every socket is now automatically connected to a constant, such that `getInputSocketReader` will never return a NULL pointer. This breaks the previous test method, which needs to be replaced by more explicit flags. Luckily this was done only for very few output nodes (Composite, Viewer, Output-File). These now use the regular SetValueOperation default in case "use alpha" is disabled, but set this to an explicit 1.0 value instead of mapping to the node socket. --- source/blender/compositor/operations/COM_CompositorOperation.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'source/blender/compositor/operations/COM_CompositorOperation.h') diff --git a/source/blender/compositor/operations/COM_CompositorOperation.h b/source/blender/compositor/operations/COM_CompositorOperation.h index d33e89ed742..771c32ffd12 100644 --- a/source/blender/compositor/operations/COM_CompositorOperation.h +++ b/source/blender/compositor/operations/COM_CompositorOperation.h @@ -69,7 +69,7 @@ private: /** * @brief Ignore any alpha input */ - bool m_ignoreAlpha; + bool m_useAlphaInput; /** * @brief operation is active for calculating final compo result @@ -86,7 +86,7 @@ public: void deinitExecution(); const CompositorPriority getRenderPriority() const { return COM_PRIORITY_MEDIUM; } void determineResolution(unsigned int resolution[2], unsigned int preferredResolution[2]); - void setIgnoreAlpha(bool value) { this->m_ignoreAlpha = value; } + void setUseAlphaInput(bool value) { this->m_useAlphaInput = value; } void setActive(bool active) { this->m_active = active; } }; #endif -- cgit v1.2.3