Revision: 19109
          
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=19109
Author:   ton
Date:     2009-02-25 10:36:25 +0100 (Wed, 25 Feb 2009)

Log Message:
-----------
2.5

Bugfix: commit of last week that moved object_handle_update() out
of the view3d code into event loop caused render to crash. This
update should not be called during render. In future it'll even
be thread-locked or better; solved by giving objects an 'owner'
for storage of updates.

This solves a lot of crashes on render.

Modified Paths:
--------------
    
branches/blender2.5/blender/source/blender/windowmanager/intern/wm_event_system.c

Modified: 
branches/blender2.5/blender/source/blender/windowmanager/intern/wm_event_system.c
===================================================================
--- 
branches/blender2.5/blender/source/blender/windowmanager/intern/wm_event_system.c
   2009-02-25 06:43:03 UTC (rev 19108)
+++ 
branches/blender2.5/blender/source/blender/windowmanager/intern/wm_event_system.c
   2009-02-25 09:36:25 UTC (rev 19109)
@@ -218,18 +218,20 @@
                        }
                }
                
-               /* update all objects, ipos, 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 */
-               if(scene->set) {
-                       for(SETLOOPER(scene->set, base))
+               if(G.rendering==0) { // XXX make lock in future, or separated 
derivedmesh users in scene
+                       
+                       /* update all objects, ipos, 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 */
+                       if(scene->set) {
+                               for(SETLOOPER(scene->set, base))
+                                       object_handle_update(scene, 
base->object);
+                       }
+                       
+                       for(base= scene->base.first; base; base= base->next) {
                                object_handle_update(scene, base->object);
-               }
-               
-               for(base= scene->base.first; base; base= base->next) {
-                       object_handle_update(scene, base->object);
-               }
-               
+                       }
+               }               
        }
        CTX_wm_window_set(C, NULL);
 }


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

Reply via email to