January 1, 2015, 15:34 (GMT) |
Depsgraph: initial move towards switch to the new depsgraph Quite some changes in this commit, mainly: - Made it more clear separation between old and new dependency graphs. So now logic for the new dependency graph is totally concentrated in depsgraph/ folder and old DAG_* calls only redirects to that module. This gives a bit of code redundancy (not so much tho) but it makes it really clear how to drop old dependency graph or how to make it an easy switch between old/new code bases (as a command line argument perhaps to be safe for a major failure). - Kind of part of previous one, but to be clear: all the parts of the new dependency graph API which were marked as TODO are now filled in. It doesn't mean they're 100% finished, but initial code is there. - Removed some experimental code. Let's just stick to code which might not be optimal but works reliably. - Started re-integration new dependency graph into editors. This is basically Cycles viewport rendering which starts working now. Still some glitches in there and missing updates but let's start from something. I decided to not invent anything totally new here and just ported old logic with id->flag tags. |
January 1, 2015, 12:56 (GMT) |
Code Cleanup: Disambiguate the "ComponentKey" name ComponentKey was mostly used to refer to the lookup keys used when specifying a relevant node for use when creating a relationship, while the secondary usage of this was in IDDepsNodes as the keys for the component dict. While there is technically no problem with having this, in practice it was too confusing. So, now "ComponentKey" is only for looking up nodes, while "ComponentIDKey" is used internally to identify keys. |
January 1, 2015, 09:54 (GMT) |
Cleanup comments while reviewing whther bone IK code is defined correctly |
January 1, 2015, 09:10 (GMT) |
Merge branch 'master' into depsgraph_refactor |
January 1, 2015, 00:52 (GMT) |
Fix: Animation works again Because most of the places using the animdata op coneected to the component, the removal of verify_entry_exit_ops() broke this. For now, we'll manually set this op as the entry/exit for the component. |
December 31, 2014, 19:08 (GMT) |
Depsgraph: Fix compilation error with legacy depsgraph enabled |
December 31, 2014, 16:52 (GMT) |
Depsgraph: Use layers visibility passed from scene_update_for_newframe This way we can easily deal with the cases when render engine requests for a different set of layers to be updated without need make bigger changes to the outside of the dependency graph. TODO: It is now possible to have some missing scene updates when mixing update from the viewport and render engine. This isn't difficult to solve but wouldn't be able to wrap up the patch today. |
December 31, 2014, 16:24 (GMT) |
Depsgraph: Nodes visibility was flushing in the wrong direction TODO: Moving objects around between layers should flush node layers. |
December 31, 2014, 15:47 (GMT) |
Depsgraph: Mark geometry uber eval as the post operation This way geometry component has proper exit operation which makes relations happy. it is still not enough to make the most simple scene here to work. |
December 31, 2014, 14:50 (GMT) |
Merge branch 'master' into depsgraph_refactor |
December 31, 2014, 10:21 (GMT) |
Depsgraph: Fix for clang and legacy depsgraph disabled |
December 31, 2014, 10:18 (GMT) |
Depsgraph: Fix compilation error with clang |
December 31, 2014, 10:12 (GMT) |
Merge branch 'master' into depsgraph_refactor |
December 30, 2014, 13:19 (GMT) |
Depsgraph: Correction to previous commits to avoid asserts when built with legacy depsgraph |
December 30, 2014, 09:25 (GMT) |
WIP: The placeholder "geometry eval" opnodes are now marked as entrypoints to the corresponding components |
December 30, 2014, 09:21 (GMT) |
WIP: Added coded to link shapekey drivers to the geometry eval operations This currently doesn't work because the geometry stuff isn't set up correctly yet. With some tweaks, it should eventually work though. |
December 30, 2014, 05:35 (GMT) |
Fix for Driver: fcu->rna_path was not unique enough to be an identifying key For identifying a particular driver within a component, just using the RNA path isn't enough, as that means that only the first driver for array/vector properties gets executed or included in the graph. To ensure that it is still possible to easily figure out what's going on, we now generate strings for the "name" identifiers now (i.e. rna path + array index) |
December 30, 2014, 02:45 (GMT) |
Improve debugging error prints for add_relation() again This time, when the lookup fails, we print the details of the key that failed, so that we can see what was being searched for when we didn't find what we were looking for. |
December 30, 2014, 01:09 (GMT) |
Entry/Exit operations for components now get set when creating those operation nodes |
December 30, 2014, 00:19 (GMT) |
Get rid of verify_entry_exit_operations() This was a holdover from the initial implementation, when we tried to do everything in a single pass, and we couldn't be sure if a component's start/end operations had been created yet (i.e. since some components may have only been partially created). Following discussion with Sergey, we've concluded that this is redundant |
|