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 */


_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to