[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [29546] branches/render25/source/blender/ blenkernel/intern: Render Branch: svn merge https://svn.blender.org/svnroot /bf-blender/trunk/blender -r29540:29545, skipped particle_system.c

Campbell Barton ideasman42 at gmail.com
Fri Jun 18 16:45:29 CEST 2010


Revision: 29546
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=29546
Author:   campbellbarton
Date:     2010-06-18 16:45:29 +0200 (Fri, 18 Jun 2010)

Log Message:
-----------
Render Branch: svn merge https://svn.blender.org/svnroot/bf-blender/trunk/blender  -r29540:29545, skipped particle_system.c

Modified Paths:
--------------
    branches/render25/source/blender/blenkernel/intern/collision.c
    branches/render25/source/blender/blenkernel/intern/effect.c
    branches/render25/source/blender/blenkernel/intern/scene.c

Modified: branches/render25/source/blender/blenkernel/intern/collision.c
===================================================================
--- branches/render25/source/blender/blenkernel/intern/collision.c	2010-06-18 14:14:13 UTC (rev 29545)
+++ branches/render25/source/blender/blenkernel/intern/collision.c	2010-06-18 14:45:29 UTC (rev 29546)
@@ -40,6 +40,7 @@
 
 #include "BKE_DerivedMesh.h"
 #include "BKE_global.h"
+#include "BKE_scene.h"
 #include "BKE_mesh.h"
 #include "BKE_object.h"
 #include "BKE_modifier.h"
@@ -1352,10 +1353,13 @@
 			add_collision_object(&objs, &numobj, &maxobj, go->ob, self, 0);
 	}
 	else {
-		/* add objects in visible layer in scene */
-		for(base = scene->base.first; base; base = base->next)
-			if(base->lay & scene->lay)
+		Scene *sce; /* for SETLOOPER macro */
+		/* add objects in same layer in scene */
+		for(SETLOOPER(scene, base)) {
+			if(base->lay & self->lay)
 				add_collision_object(&objs, &numobj, &maxobj, base->object, self, 0);
+
+		}
 	}
 
 	*numcollobj= numobj;
@@ -1399,7 +1403,6 @@
 
 ListBase *get_collider_cache(Scene *scene, Object *self, Group *group)
 {
-	Base *base;
 	GroupObject *go;
 	ListBase *objs= NULL;
 	
@@ -1409,9 +1412,15 @@
 			add_collider_cache_object(&objs, go->ob, self, 0);
 	}
 	else {
-		for(base = scene->base.first; base; base = base->next)
-			if(!self || (base->lay & self->lay)) 
+		Scene *sce; /* for SETLOOPER macro */
+		Base *base;
+
+		/* add objects in same layer in scene */
+		for(SETLOOPER(scene, base)) {
+			if(!self || (base->lay & self->lay))
 				add_collider_cache_object(&objs, base->object, self, 0);
+
+		}
 	}
 
 	return objs;

Modified: branches/render25/source/blender/blenkernel/intern/effect.c
===================================================================
--- branches/render25/source/blender/blenkernel/intern/effect.c	2010-06-18 14:14:13 UTC (rev 29545)
+++ branches/render25/source/blender/blenkernel/intern/effect.c	2010-06-18 14:45:29 UTC (rev 29546)
@@ -781,7 +781,7 @@
 	}
 
 	if(eff->pd->flag & PFIELD_TEX_OBJECT) {
-		mul_mat3_m4_v3(eff->ob->obmat, tex_co);
+		mul_m4_v3(eff->ob->obmat, tex_co);
 	}
 
 	hasrgb = multitex_ext(eff->pd->tex, tex_co, NULL,NULL, 0, result, -1);

Modified: branches/render25/source/blender/blenkernel/intern/scene.c
===================================================================
--- branches/render25/source/blender/blenkernel/intern/scene.c	2010-06-18 14:14:13 UTC (rev 29545)
+++ branches/render25/source/blender/blenkernel/intern/scene.c	2010-06-18 14:45:29 UTC (rev 29546)
@@ -887,68 +887,38 @@
 	return ctime;
 }
 
-static void scene_update_newframe(Scene *scene, int cfra, unsigned int lay)
+static void scene_update_tagged_recursive(Scene *scene, Scene *scene_parent)
 {
 	Base *base;
-	Object *ob;
-	int cfra_back= scene->r.cfra;
-	scene->r.cfra= cfra;
-	
+
+	/* sets first, we allow per definition current scene to have
+	   dependencies on sets, but not the other way around. */
+	if(scene->set)
+		scene_update_tagged_recursive(scene->set, scene_parent);
+
 	for(base= scene->base.first; base; base= base->next) {
-		ob= base->object;
-		
-		object_handle_update(scene, ob);   // bke_object.h
+		Object *ob= base->object;
 
+		object_handle_update(scene_parent, ob);
+
 		if(ob->dup_group && (ob->transflag & OB_DUPLIGROUP))
-			group_handle_recalc_and_update(scene, ob, ob->dup_group);
-		
-		/* only update layer when an ipo */
-			// XXX old animation system
-		//if(ob->ipo && has_ipo_code(ob->ipo, OB_LAY) ) {
-		//	base->lay= ob->lay;
-		//}
+			group_handle_recalc_and_update(scene_parent, ob, ob->dup_group);
 	}
-
-	scene->r.cfra= cfra_back;
 }
 
 /* this is called in main loop, doing tagged updates before redraw */
 void scene_update_tagged(Scene *scene)
 {
-	Scene *sce;
-	Base *base;
-	Object *ob;
-	float ctime = frame_to_float(scene, scene->r.cfra); 
-
 	scene->physics_settings.quick_cache_step= 0;
 
 	/* update all objects: drivers, matrices, displists, etc. flags set
 	   by depgraph or manual, no layer check here, gets correct flushed */
 
-	/* sets first, we allow per definition current scene to have
-	   dependencies on sets, but not the other way around. */
-	if(scene->set) {
-		for(SETLOOPER(scene->set, base)) {
-			ob= base->object;
+	scene_update_tagged_recursive(scene, scene);
 
-			object_handle_update(scene, ob);
-
-			if(ob->dup_group && (ob->transflag & OB_DUPLIGROUP))
-				group_handle_recalc_and_update(scene, ob, ob->dup_group);
-		}
-	}
-	
-	for(base= scene->base.first; base; base= base->next) {
-		ob= base->object;
-
-		object_handle_update(scene, ob);
-
-		if(ob->dup_group && (ob->transflag & OB_DUPLIGROUP))
-			group_handle_recalc_and_update(scene, ob, ob->dup_group);
-	}
-
 	/* recalc scene animation data here (for sequencer) */
 	{
+		float ctime = frame_to_float(scene, scene->r.cfra); 
 		AnimData *adt= BKE_animdata_from_id(&scene->id);
 
 		if(adt && (adt->recalc & ADT_RECALC_ANIM))
@@ -978,7 +948,7 @@
 
 
 	/* Following 2 functions are recursive
-	 * so dont call within 'scene_update_newframe' */
+	 * so dont call within 'scene_update_tagged_recursive' */
 	DAG_scene_update_flags(sce, lay);   // only stuff that moves or needs display still
 
 	/* All 'standard' (i.e. without any dependencies) animation is handled here,
@@ -990,13 +960,8 @@
 	BKE_animsys_evaluate_all_animation(G.main, ctime);
 	/*...done with recusrive funcs */
 
-
-	/* sets first, we allow per definition current scene to have dependencies on sets */
-	for(sce_iter= sce->set; sce_iter; sce_iter= sce_iter->set) {
-		scene_update_newframe(sce_iter, sce->r.cfra, lay);
-    }
-
-	scene_update_newframe(sce, sce->r.cfra, lay);
+	/* object_handle_update() on all objects, groups and sets */
+	scene_update_tagged_recursive(sce, sce);
 }
 
 /* return default layer, also used to patch old files */





More information about the Bf-blender-cvs mailing list