Page MenuHome

Fix T94812: Render layer sockets are missing after file load.
ClosedPublic

Authored by Jacques Lucke (JacquesLucke) on Jan 11 2022, 1:55 PM.

Details

Summary

The main issue was that cmp_node_rlayer_create_outputs_cb used G_MAIN. However, that was not set correctly during file load yet.
The fix is to refactor it a bit so that iterating over Main is not necessary.

The old code looked like it might update multiple nodes in the callback, but in practice it does not seem like this could ever happen. That's because node_cmp_rlayers_register_pass checks if node->storage is non-null. If I see it correctly, there is always at most one render layer node that has node->storage, because cmp_node_rlayer_create_outputs is the only only function that sets node->storage and frees it in the end.

Diff Detail

Repository
rB Blender