Fix #34599: Mask nodes stop working if output is later piped through HSV node
authorSergey Sharybin <sergey.vfx@gmail.com>
Tue, 12 Mar 2013 08:24:30 +0000 (08:24 +0000)
committerSergey Sharybin <sergey.vfx@gmail.com>
Tue, 12 Mar 2013 08:24:30 +0000 (08:24 +0000)
commit9c0eecbf102cf1e39a5a5374a0d1bd4f60cfbddb
treefb7d00f0fa873c81ca33a4fa66ffc94a93e20ffd
parent5792e77239c43aea0afc21b2df96153ba31c5399
Fix #34599: Mask nodes stop working if output is later piped through HSV node

Issue was caused by the fix for #33650 which changed way to check whether
operation resolution is set or not from checking dimensions are zero to
setResolution was ever called.

Such change lead to conflict with MixBase operation (used for Mix node) which
uses temporary zero resolution to check whether input socket resolution is
known. This leads to zero resolution setting to that branch of tree. After this
resolution will never set to it's actual value.

For now solved by changing logic how MixBase operation detects resolution.
Namely instead of using trick with temporary zero resolution and calling
determineResolution for all inputs, and then call base class's method to
determine resolution just once again, check whether input socket is connected
and if so use it's resolution.

Shall not be regressions for real-life trees, but keeping an eye on this and
doing more tests is for sure welcome.
source/blender/compositor/operations/COM_MixBaseOperation.cpp