Revision: 58529
          
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=58529
Author:   gdh
Date:     2013-07-23 05:38:02 +0000 (Tue, 23 Jul 2013)
Log Message:
-----------
Changes to the object_export field of the Object class. It is now a 
pointer allocated with new. I was hoping this would fix the seg fault, 
but it didn't. I kind of like it better, though. Tell me if it's not.

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

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:28:05 UTC (rev 58528)
+++ branches/soc-2013-cycles_mblur/intern/cycles/blender/blender_object.cpp     
2013-07-23 05:38:02 UTC (rev 58529)
@@ -324,7 +324,7 @@
                scene->object_manager->tag_update(scene);
                object_updated = true;
        }
-       
+
        /* Get the number of motion blur steps. */
        uint mblur_steps = object_mblur_steps(b_ob);
        
@@ -335,30 +335,33 @@
                object->mesh->mblur_steps = mblur_steps;
                scene->object_manager->tag_update(scene);
                object_updated = true;
-               
+
                /* Get the new export times. */
-               
+
+               /* First, clear the old ones. */
+               object->export_times->clear();
+
                /* We need to use the shutter time. */
                float shuttertime = scene->camera->shuttertime;
                float half_frame = 0.5f * shuttertime;
-               
+
                /* This is a float to prevent a lot of casting in a for loop. */
                float frame = static_cast<float>(b_scene.frame_current());
-               
+
                /* XXX: Do ALL compilers optimize the divide by 2? */
                int half_steps = mblur_steps / 2;
                float step_width = half_frame / half_steps;
                float time;
-               
+
                for (int i = 1; i <= half_steps; ++i) {
                        time = i * step_width;
-                       object->export_times.insert(frame - time);
-                       object->export_times.insert(frame + time);
+                       object->export_times->insert(frame - time);
+                       object->export_times->insert(frame + time);
                }
        }
-       
+
        bool use_holdout = (layer_flag & render_layer.holdout_layer) != 0;
-       
+
        /* mesh sync */
        object->mesh = sync_mesh(b_ob, object_updated, hide_tris);
 

Modified: branches/soc-2013-cycles_mblur/intern/cycles/render/object.cpp
===================================================================
--- branches/soc-2013-cycles_mblur/intern/cycles/render/object.cpp      
2013-07-23 05:28:05 UTC (rev 58528)
+++ branches/soc-2013-cycles_mblur/intern/cycles/render/object.cpp      
2013-07-23 05:38:02 UTC (rev 58529)
@@ -48,10 +48,12 @@
        use_deform_mblur = false;
        use_holdout = false;
        curverender = false;
+       export_times = new std::set<float>();
 }
 
 Object::~Object()
 {
+       delete export_times;
 }
 
 void Object::compute_bounds(bool motion_blur, float shuttertime)

Modified: branches/soc-2013-cycles_mblur/intern/cycles/render/object.h
===================================================================
--- branches/soc-2013-cycles_mblur/intern/cycles/render/object.h        
2013-07-23 05:28:05 UTC (rev 58528)
+++ branches/soc-2013-cycles_mblur/intern/cycles/render/object.h        
2013-07-23 05:38:02 UTC (rev 58529)
@@ -61,7 +61,7 @@
         * This one is only used during syncing.
         * It should be set to NULL right afterward.
         */
-       std::set<float> export_times;
+       std::set<float> *export_times;
 
        Object();
        ~Object();

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

Reply via email to