[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