[Bf-blender-cvs] [d3faf52] depsgraph_refactor: Ported compositor build function.

Lukas Tönne noreply at git.blender.org
Thu Apr 10 09:18:31 CEST 2014


Commit: d3faf52cf1dcf86318549b7fc963d0a5c31d4c8e
Author: Lukas Tönne
Date:   Wed Apr 9 16:59:17 2014 +0200
https://developer.blender.org/rBd3faf52cf1dcf86318549b7fc963d0a5c31d4c8e

Ported compositor build function.

===================================================================

M	source/blender/depsgraph/intern/depsgraph_build.h
M	source/blender/depsgraph/intern/depsgraph_build_nodes.cpp
M	source/blender/depsgraph/intern/depsgraph_build_relations.cpp

===================================================================

diff --git a/source/blender/depsgraph/intern/depsgraph_build.h b/source/blender/depsgraph/intern/depsgraph_build.h
index 65ab0c8..c483d8d 100644
--- a/source/blender/depsgraph/intern/depsgraph_build.h
+++ b/source/blender/depsgraph/intern/depsgraph_build.h
@@ -74,12 +74,12 @@ struct DepsgraphNodeBuilder {
 	void build_rigidbody(Scene *scene);
 	void build_animdata(IDDepsNode *id_node);
 	OperationDepsNode *build_driver(ComponentDepsNode *adt_node, FCurve *fcurve);
-	void build_nodetree(IDDepsNode *owner_node, bNodeTree *ntree);
-	void build_material(IDDepsNode *owner_node, Material *ma);
-	void build_texture(IDDepsNode *owner_node, Tex *tex);
-	void build_texture_stack(IDDepsNode *owner_node, MTex **texture_stack);
+	void build_nodetree(DepsNode *owner_node, bNodeTree *ntree);
+	void build_material(DepsNode *owner_node, Material *ma);
+	void build_texture(DepsNode *owner_node, Tex *tex);
+	void build_texture_stack(DepsNode *owner_node, MTex **texture_stack);
 	void build_world(World *world);
-	void build_compositor(Scene *scene);
+	void build_compositor(IDDepsNode *scene_node, Scene *scene);
 	
 private:
 	Main *m_bmain;
diff --git a/source/blender/depsgraph/intern/depsgraph_build_nodes.cpp b/source/blender/depsgraph/intern/depsgraph_build_nodes.cpp
index 7d802df..7059b25 100644
--- a/source/blender/depsgraph/intern/depsgraph_build_nodes.cpp
+++ b/source/blender/depsgraph/intern/depsgraph_build_nodes.cpp
@@ -167,7 +167,7 @@ IDDepsNode *DepsgraphNodeBuilder::build_scene(Scene *scene)
 	
 	/* compo nodes */
 	if (scene->nodetree) {
-		build_compositor(scene);
+		build_compositor(scene_node, scene);
 	}
 	
 	/* sequencer */
@@ -381,7 +381,7 @@ void DepsgraphNodeBuilder::build_world(World *world)
 	id_tag_clear(world);
 }
 
-void DepsgraphNodeBuilder::build_nodetree(IDDepsNode *owner_node, bNodeTree *ntree)
+void DepsgraphNodeBuilder::build_nodetree(DepsNode *owner_node, bNodeTree *ntree)
 {
 	if (!ntree)
 		return;
@@ -410,7 +410,7 @@ void DepsgraphNodeBuilder::build_nodetree(IDDepsNode *owner_node, bNodeTree *ntr
 }
 
 /* Recursively build graph for material */
-void DepsgraphNodeBuilder::build_material(IDDepsNode *owner_node, Material *ma)
+void DepsgraphNodeBuilder::build_material(DepsNode *owner_node, Material *ma)
 {
 	/* Prevent infinite recursion by checking (and tagging the material) as having been visited 
 	 * already. This assumes ma->id.flag & LIB_DOIT isn't set by anything else
@@ -435,7 +435,7 @@ void DepsgraphNodeBuilder::build_material(IDDepsNode *owner_node, Material *ma)
 }
 
 /* Texture-stack attached to some shading datablock */
-void DepsgraphNodeBuilder::build_texture_stack(IDDepsNode *owner_node, MTex **texture_stack)
+void DepsgraphNodeBuilder::build_texture_stack(DepsNode *owner_node, MTex **texture_stack)
 {
 	int i;
 	
@@ -448,7 +448,7 @@ void DepsgraphNodeBuilder::build_texture_stack(IDDepsNode *owner_node, MTex **te
 }
 
 /* Recursively build graph for texture */
-void DepsgraphNodeBuilder::build_texture(IDDepsNode *owner_node, Tex *tex)
+void DepsgraphNodeBuilder::build_texture(DepsNode *owner_node, Tex *tex)
 {
 	/* Prevent infinite recursion by checking (and tagging the texture) as having been visited 
 	 * already. This assumes tex->id.flag & LIB_DOIT isn't set by anything else
@@ -469,7 +469,14 @@ void DepsgraphNodeBuilder::build_texture(IDDepsNode *owner_node, Tex *tex)
 	id_tag_clear(tex);
 }
 
-void DepsgraphNodeBuilder::build_compositor(Scene *scene)
+void DepsgraphNodeBuilder::build_compositor(IDDepsNode *scene_node, Scene *scene)
 {
-	
+	/* For now, just a plain wrapper? */
+	// TODO: create compositing component?
+	// XXX: component type undefined!
+	//graph->get_node(&scene->id, NULL, DEPSNODE_TYPE_COMPOSITING, NULL);
+	
+	/* for now, nodetrees are just parameters; compositing occurs in internals of renderer... */
+	ComponentDepsNode *owner_node = add_component_node(scene_node, DEPSNODE_TYPE_PARAMETERS);
+	build_nodetree(owner_node, scene->nodetree);
 }
diff --git a/source/blender/depsgraph/intern/depsgraph_build_relations.cpp b/source/blender/depsgraph/intern/depsgraph_build_relations.cpp
index acc5501..dee1ccc 100644
--- a/source/blender/depsgraph/intern/depsgraph_build_relations.cpp
+++ b/source/blender/depsgraph/intern/depsgraph_build_relations.cpp
@@ -552,5 +552,6 @@ void DepsgraphRelationBuilder::build_texture_stack(IDPtr owner, MTex **texture_s
 
 void DepsgraphRelationBuilder::build_compositor(Scene *scene)
 {
-	
+	/* For now, just a plain wrapper? */
+	build_nodetree(scene, scene->nodetree);
 }




More information about the Bf-blender-cvs mailing list