Depsgraph: Iterates over ID Nodes instead of Bases

Authored by Dalai Felinto (dfelinto) on Oct 25 2017, 8:48 PM.



Although this works by itself, it should actually happen after:

"Reshuffle collections base flags evaluation, make it so object is gathering
its base flags from collections."

Meanwhile we have one single hacky function (deg_flush_base_flags_and_settings)
to be removed once the task above is tackled.

Note: The logic for "SETS" here is working, but SETS themselves seem to be broken in 2.8.

Note 2: ID Nodes (or IDs) should be tagged properly, so we can skip the ones that were not
added directly by the current scene layer.

Diff Detail

rB Blender

Split bitwise for sets in two lines

@Sergey Sharybin (sergey) this is the definitive patch on this. I will move on from this,
but that's on you now. I will poke you eventually if you are too busy
to think about this now.

  • Merge remote-tracking branch 'origin/blender2.8' into temp-depsgraph-query-id-nodes

I moved the "skip" part of the patch to upstream since it helps with my
debugging for something else.

  • From Sergey: GHashIterator
  • From Sergey: "tagging system for linked id nodes"
  • Another take on the "tags"

@Sergey Sharybin (sergey) I think this is better, but using "std::max" instead of flags | ...
I personally like it. I may wait for your 2 cents before committing, but may not.

Let me know if you have any strong feelings either way here.

This revision was automatically updated to reflect the committed changes.