diff options
Diffstat (limited to 'intern/cycles/blender/blender_curves.cpp')
-rw-r--r-- | intern/cycles/blender/blender_curves.cpp | 17 |
1 files changed, 10 insertions, 7 deletions
diff --git a/intern/cycles/blender/blender_curves.cpp b/intern/cycles/blender/blender_curves.cpp index daccb89f5a2..984442fb08c 100644 --- a/intern/cycles/blender/blender_curves.cpp +++ b/intern/cycles/blender/blender_curves.cpp @@ -326,14 +326,14 @@ static bool ObtainCacheParticleVcol(Mesh *mesh, return true; } -static void set_resolution(BL::Object *b_ob, BL::Scene *scene, bool render) +static void set_resolution(BL::Object& b_ob, BL::Scene& scene, BL::ViewLayer& view_layer, bool render) { BL::Object::modifiers_iterator b_mod; - for(b_ob->modifiers.begin(b_mod); b_mod != b_ob->modifiers.end(); ++b_mod) { + for(b_ob.modifiers.begin(b_mod); b_mod != b_ob.modifiers.end(); ++b_mod) { if((b_mod->type() == b_mod->type_PARTICLE_SYSTEM) && ((b_mod->show_viewport()) || (b_mod->show_render()))) { BL::ParticleSystemModifier psmd((const PointerRNA)b_mod->ptr); BL::ParticleSystem b_psys((const PointerRNA)psmd.particle_system().ptr); - b_psys.set_resolution(*scene, *b_ob, (render)? 2: 1); + b_psys.set_resolution(scene, view_layer, b_ob, (render)? 2: 1); } } } @@ -884,7 +884,8 @@ void BlenderSync::sync_curve_settings() curve_system_manager->tag_update(scene); } -void BlenderSync::sync_curves(Mesh *mesh, +void BlenderSync::sync_curves(BL::Depsgraph& b_depsgraph, + Mesh *mesh, BL::Mesh& b_mesh, BL::Object& b_ob, bool motion, @@ -902,7 +903,8 @@ void BlenderSync::sync_curves(Mesh *mesh, /* obtain general settings */ const bool use_curves = scene->curve_system_manager->use_curves; - if(!(use_curves && b_ob.mode() != b_ob.mode_PARTICLE_EDIT)) { + /* TODO/OBMODE, make cycles mode aware. */ + if(!(use_curves /* && b_ob.mode() != b_ob.mode_PARTICLE_EDIT */ )) { if(!motion) mesh->compute_bounds(); return; @@ -919,8 +921,9 @@ void BlenderSync::sync_curves(Mesh *mesh, ParticleCurveData CData; + BL::ViewLayer b_view_layer = b_depsgraph.view_layer(); if(!preview) - set_resolution(&b_ob, &b_scene, true); + set_resolution(b_ob, b_scene, b_view_layer, true); ObtainCacheParticleData(mesh, &b_mesh, &b_ob, &CData, !preview); @@ -1065,7 +1068,7 @@ void BlenderSync::sync_curves(Mesh *mesh, } if(!preview) - set_resolution(&b_ob, &b_scene, false); + set_resolution(b_ob, b_scene, b_view_layer, false); mesh->compute_bounds(); } |