Blender Git Commits

Blender Git "depsgraph_refactor" branch commits.

Page: 30 / 59

April 9, 2014, 14:59 (GMT)
Ported compositor build function.
April 9, 2014, 14:43 (GMT)
Ported build functions for textures, materials and node trees.
April 9, 2014, 13:14 (GMT)
World node building.
April 9, 2014, 12:01 (GMT)
Splitting off main construction logic from depsgraph_build.cpp.

The original source file now only contains general functions for the
builder classes. The actual logic for building the nodes/relations from
a scene is in depsgraph_build_nodes/depsgraph_build_relations now. This
helps navigation and keeps the code in those files concerned only with
the actual inspection of DNA data.
April 9, 2014, 11:39 (GMT)
Call animdata/driver build functions for objects and object data IDs.
April 9, 2014, 11:26 (GMT)
Build nodes and relations for animdata and drivers.
April 9, 2014, 09:21 (GMT)
Time source registration logic added to DepsgraphNodeBuilder (as far as
it exists at this point).

The goal is to remove all add_to_graph functionality from the invidiual
node classes eventually and add this to the respective owner node types.
Doing this in the builder classes is just temporary atm.
April 9, 2014, 08:21 (GMT)
Added back the root node construction to the depsgraph build function.
April 9, 2014, 05:55 (GMT)
Fix incomplete info for operation keys.

Operations are stored by name keys (multiple operations of the same type
can exist in the same component, currently e.g. in rigid body components
using multiple world build/sync operations). To keep name strings
manageable for now use string constants for the existing operations,
instead of literals used only in the build methods (compiler then helps
avoid mismatches).

Every operation type is also directly associated to a specific component
type. This was previously done only implicitly via the add_to_graph
functions. Now the associated component type is directly accessible from
node factory type information, so we can use a simple id+operation name
key when building the graph, and don't need hidden factorization inside
the graph->find_node method (deprecated code to be removed later).
April 7, 2014, 16:09 (GMT)
First steps towards a 2-pass builder system.

Idea is to separate the construction of nodes from the declaration of
relations between them. This gives a cleaner structure and allows better
error handling.

Two "builder" classes define the API for each build pass. This way the
context variables (graph) can be accessed during building without having
to pass them explicitly to every function.

Specifying nodes in the relations pass works using keys rather than
direct node pointers. This way the builder can perform error handling
if one or both ends of the relation don't exist. Keys also don't require
all the details necessary for actual construction of nodes
(e.g. operation callback functions, description strings). This avoids
redundant or conflicting information in graph->get_node calls and
simplifies the code.

Old build code has been moved to a (not included) source file
depsgraph_build_deprecated.c to make porting more manageable.
April 7, 2014, 15:44 (GMT)
Cleanup: Replace invalid NULL for empty strings by "".
April 7, 2014, 15:43 (GMT)
New utility class IDPtr/ConstIDPtr for handling ID subtypes.

This supports implicit casting from ID C subtypes (e.g. Scene, Object)
to plain ID without having to access &xxx->id or do explicit casts every
time. Also could provide upcast facilities later and possibly assert
based on the ID name prefix.
April 2, 2014, 08:31 (GMT)
Merge branch 'depsgraph_refactor' into depsgraph_refactor_cpp
April 2, 2014, 08:31 (GMT)
Merge branch 'master' into depsgraph_refactor

Conflicts:
source/blender/makesrna/intern/rna_scene.c
March 31, 2014, 12:13 (GMT)
get_operation function in component nodes now takes the same extra
arguments as the add_operation function in Depsgraph.
March 31, 2014, 10:17 (GMT)
Renamed create_*_node functions to get_*_node, following same naming
scheme as depgraph uses for generic node creation methods.

Conflicts:
source/blender/depsgraph/intern/depsgraph.cpp
source/blender/depsgraph/intern/depsgraph.h
source/blender/depsgraph/intern/depsnode.cpp
source/blender/depsgraph/intern/depsnode.h
source/blender/depsgraph/intern/depsnode_component.cpp
source/blender/depsgraph/intern/depsnode_component.h
March 31, 2014, 10:15 (GMT)
Properly register components and operations in the hash maps.
March 31, 2014, 10:15 (GMT)
Complementary remove/clear functions for the component/operations
hierarchy nodes.

Conflicts:
source/blender/depsgraph/intern/depsgraph.h
source/blender/depsgraph/intern/depsnode_component.h
March 31, 2014, 10:06 (GMT)
Added new functions for directly creating components and operations in
their respective owner nodes.

This will be used instead of creating them via graph functions, which
need to do ugly global lookups.

Conflicts:
source/blender/depsgraph/intern/depsnode_component.cpp
source/blender/depsgraph/intern/depsnode_component.h
March 31, 2014, 09:34 (GMT)
Cleanup: Use std::string instead of char arrays/pointers.

A utility function string_format has been added util_string to implement
sprintf-like functionality and avoid using the moronic stringstream crap.
By: Miika HämäläinenLast update: Nov-07-2014 14:18MiikaHweb | 2003-2021