[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [58530] branches/soc-2013-cycles_mblur/ intern/cycles/blender: Fix for viewport render crash.

Gavin Howard gavin.d.howard at gmail.com
Tue Jul 23 08:09:01 CEST 2013


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);




More information about the Bf-blender-cvs mailing list