[Bf-blender-cvs] [3632c49] temp_remove_particles: Merge branch 'master' into temp_remove_particles

Lukas Tönne noreply at git.blender.org
Wed Apr 20 16:25:32 CEST 2016


Commit: 3632c4997f5019d2a519996d9e216d474aa05d3b
Author: Lukas Tönne
Date:   Wed Apr 20 16:25:16 2016 +0200
Branches: temp_remove_particles
https://developer.blender.org/rB3632c4997f5019d2a519996d9e216d474aa05d3b

Merge branch 'master' into temp_remove_particles

===================================================================



===================================================================

diff --cc intern/cycles/blender/blender_sync.cpp
index 71f4aff,6291b38..914b348
--- a/intern/cycles/blender/blender_sync.cpp
+++ b/intern/cycles/blender/blender_sync.cpp
@@@ -115,13 -121,49 +120,43 @@@ bool BlenderSync::sync_recalc(
  			if(b_ob->is_updated_data() || b_ob->data().is_updated())
  				light_map.set_recalc(*b_ob);
  		}
 -		
 -		if(b_ob->is_updated_data()) {
 -			BL::Object::particle_systems_iterator b_psys;
 -			for(b_ob->particle_systems.begin(b_psys); b_psys != b_ob->particle_systems.end(); ++b_psys)
 -				particle_system_map.set_recalc(*b_ob);
 -		}
  	}
  
+ 	bool dicing_prop_changed = false;
+ 
+ 	if(experimental) {
+ 		PointerRNA cscene = RNA_pointer_get(&b_scene.ptr, "cycles");
+ 
+ 		float updated_dicing_rate = preview ? RNA_float_get(&cscene, "preview_dicing_rate")
+ 		                                    : RNA_float_get(&cscene, "dicing_rate");
+ 
+ 		if(dicing_rate != updated_dicing_rate) {
+ 			dicing_rate = updated_dicing_rate;
+ 			dicing_prop_changed = true;
+ 		}
+ 
+ 		int updated_max_subdivisions = RNA_int_get(&cscene, "max_subdivisions");
+ 
+ 		if(max_subdivisions != updated_max_subdivisions) {
+ 			max_subdivisions = updated_max_subdivisions;
+ 			dicing_prop_changed = true;
+ 		}
+ 	}
+ 
  	BL::BlendData::meshes_iterator b_mesh;
  
- 	for(b_data.meshes.begin(b_mesh); b_mesh != b_data.meshes.end(); ++b_mesh)
- 		if(b_mesh->is_updated())
+ 	for(b_data.meshes.begin(b_mesh); b_mesh != b_data.meshes.end(); ++b_mesh) {
+ 		if(b_mesh->is_updated()) {
  			mesh_map.set_recalc(*b_mesh);
+ 		}
+ 		else if(dicing_prop_changed) {
+ 			PointerRNA cmesh = RNA_pointer_get(&b_mesh->ptr, "cycles");
+ 
+ 			if(RNA_enum_get(&cmesh, "subdivision_type"))
+ 				mesh_map.set_recalc(*b_mesh);
+ 		}
+ 	}
+ 
  
  	BL::BlendData::worlds_iterator b_world;




More information about the Bf-blender-cvs mailing list