Revision: 58530
          
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=58530
Author:   gdh
Date:     2013-07-23 06:09:00 +0000 (Tue, 23 Jul 2013)
Log Message:
-----------
Fix for viewport render crash. I was trying to access a null mesh to put 
the mblur_steps in. I moved the mblur_steps to the sync_mesh() function.

Modified Paths:
--------------
    branches/soc-2013-cycles_mblur/intern/cycles/blender/blender_mesh.cpp
    branches/soc-2013-cycles_mblur/intern/cycles/blender/blender_object.cpp
    branches/soc-2013-cycles_mblur/intern/cycles/blender/blender_sync.h

Modified: branches/soc-2013-cycles_mblur/intern/cycles/blender/blender_mesh.cpp
===================================================================
--- branches/soc-2013-cycles_mblur/intern/cycles/blender/blender_mesh.cpp       
2013-07-23 05:38:02 UTC (rev 58529)
+++ branches/soc-2013-cycles_mblur/intern/cycles/blender/blender_mesh.cpp       
2013-07-23 06:09:00 UTC (rev 58530)
@@ -407,7 +407,7 @@
 
 /* Sync */
 
-Mesh *BlenderSync::sync_mesh(BL::Object b_ob, bool object_updated, bool 
hide_tris)
+Mesh *BlenderSync::sync_mesh(BL::Object b_ob, bool object_updated, bool 
hide_tris, uint mblur_steps)
 {
        /* test if we can instance or if the object is modified */
        BL::ID b_ob_data = b_ob.data();
@@ -436,6 +436,10 @@
        Mesh *mesh;
 
        if(!mesh_map.sync(&mesh, key)) {
+               
+               /* Sync the steps for motion blur. */
+               mesh->mblur_steps = mblur_steps;
+               
                /* if transform was applied to mesh, need full update */
                if(object_updated && mesh->transform_applied);
                /* test if shaders changed, these can be object level so mesh

Modified: 
branches/soc-2013-cycles_mblur/intern/cycles/blender/blender_object.cpp
===================================================================
--- branches/soc-2013-cycles_mblur/intern/cycles/blender/blender_object.cpp     
2013-07-23 05:38:02 UTC (rev 58529)
+++ branches/soc-2013-cycles_mblur/intern/cycles/blender/blender_object.cpp     
2013-07-23 06:09:00 UTC (rev 58530)
@@ -332,7 +332,6 @@
        if (mblur_steps != object->mblur_steps)
        {
                object->mblur_steps = mblur_steps;
-               object->mesh->mblur_steps = mblur_steps;
                scene->object_manager->tag_update(scene);
                object_updated = true;
 
@@ -363,7 +362,7 @@
        bool use_holdout = (layer_flag & render_layer.holdout_layer) != 0;
 
        /* mesh sync */
-       object->mesh = sync_mesh(b_ob, object_updated, hide_tris);
+       object->mesh = sync_mesh(b_ob, object_updated, hide_tris, mblur_steps);
 
        /* sspecial case not tracked by object update flags */
        if(use_holdout != object->use_holdout) {

Modified: branches/soc-2013-cycles_mblur/intern/cycles/blender/blender_sync.h
===================================================================
--- branches/soc-2013-cycles_mblur/intern/cycles/blender/blender_sync.h 
2013-07-23 05:38:02 UTC (rev 58529)
+++ branches/soc-2013-cycles_mblur/intern/cycles/blender/blender_sync.h 
2013-07-23 06:09:00 UTC (rev 58530)
@@ -82,7 +82,7 @@
        void sync_curve_settings();
 
        void sync_nodes(Shader *shader, BL::ShaderNodeTree b_ntree);
-       Mesh *sync_mesh(BL::Object b_ob, bool object_updated, bool hide_tris);
+       Mesh *sync_mesh(BL::Object b_ob, bool object_updated, bool hide_tris, 
uint mblur_steps);
        void sync_curves(Mesh *mesh, BL::Mesh b_mesh, BL::Object b_ob, bool 
object_updated);
        Object *sync_object(BL::Object b_parent, int 
persistent_id[OBJECT_PERSISTENT_ID_SIZE], BL::DupliObject b_dupli_ob,
                                         Transform& tfm, uint layer_flag, float 
export_time, bool hide_tris);

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

Reply via email to