Added dirty propagation test for ContextVariables #1230
Closed
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Two things seem to be failing here. To start with, it looks like tweaking a value on a ContextVariables node doesn't signal dirtiness properly, because ContextVariables::affects() isn't implemented correctly.
The other problem seems wider ranging: adding a member to/removing it from the "variables" plug on a ContextVariables node (and similar nodes) should trigger a propagateDirtiness and dirty its output, seeing as it affects its value. This seems problematic though - I tried calling propagateDirtiness( this ) in CompoundPlug::childAddedOrRemoved(), but compound plugs don't trigger calls to affects(), so that was the end of that. This is probably affecting other nodes with compound plugs like GafferScene::CustomAttributes too.