Commit: 38b01415546f2530ced77e91ac2d57b37b576b07
Author: Sergey Sharybin
Date:   Wed Jan 11 16:23:54 2017 +0100
Branches: master
https://developer.blender.org/rB38b01415546f2530ced77e91ac2d57b37b576b07

Cycles: Pass explicit subdivision type to object_to_mesh

This allows us to do some extra logic checks there based on particular
subdivision type.

Additionally avoids implicit cast of enum to bool.

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

M       intern/cycles/blender/blender_mesh.cpp
M       intern/cycles/blender/blender_util.h

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

diff --git a/intern/cycles/blender/blender_mesh.cpp 
b/intern/cycles/blender/blender_mesh.cpp
index c3676ea5de..a83e756de9 100644
--- a/intern/cycles/blender/blender_mesh.cpp
+++ b/intern/cycles/blender/blender_mesh.cpp
@@ -961,7 +961,13 @@ Mesh *BlenderSync::sync_mesh(BL::Object& b_ob,
 
                mesh->subdivision_type = object_subdivision_type(b_ob, preview, 
experimental);
 
-               BL::Mesh b_mesh = object_to_mesh(b_data, b_ob, b_scene, true, 
!preview, need_undeformed, mesh->subdivision_type);
+               BL::Mesh b_mesh = object_to_mesh(b_data,
+                                                b_ob,
+                                                b_scene,
+                                                true,
+                                                !preview,
+                                                need_undeformed,
+                                                mesh->subdivision_type);
 
                if(b_mesh) {
                        if(render_layer.use_surfaces && !hide_tris) {
@@ -1086,7 +1092,13 @@ void BlenderSync::sync_mesh_motion(BL::Object& b_ob,
 
        if(ccl::BKE_object_is_deform_modified(b_ob, b_scene, preview)) {
                /* get derived mesh */
-               b_mesh = object_to_mesh(b_data, b_ob, b_scene, true, !preview, 
false, false);
+               b_mesh = object_to_mesh(b_data,
+                                       b_ob,
+                                       b_scene,
+                                       true,
+                                       !preview,
+                                       false,
+                                       Mesh::SUBDIVISION_NONE);
        }
 
        if(!b_mesh) {
diff --git a/intern/cycles/blender/blender_util.h 
b/intern/cycles/blender/blender_util.h
index f17a61f0ac..92db5fdfd4 100644
--- a/intern/cycles/blender/blender_util.h
+++ b/intern/cycles/blender/blender_util.h
@@ -48,12 +48,12 @@ static inline BL::Mesh object_to_mesh(BL::BlendData& data,
                                       bool apply_modifiers,
                                       bool render,
                                       bool calc_undeformed,
-                                      bool subdivision)
+                                      Mesh::SubdivisionType subdivision_type)
 {
        bool subsurf_mod_show_render;
        bool subsurf_mod_show_viewport;
 
-       if(subdivision) {
+       if(subdivision_type != Mesh::SUBDIVISION_NONE) {
                BL::Modifier subsurf_mod = 
object.modifiers[object.modifiers.length()-1];
 
                subsurf_mod_show_render = subsurf_mod.show_render();
@@ -65,7 +65,7 @@ static inline BL::Mesh object_to_mesh(BL::BlendData& data,
 
        BL::Mesh me = data.meshes.new_from_object(scene, object, 
apply_modifiers, (render)? 2: 1, false, calc_undeformed);
 
-       if(subdivision) {
+       if(subdivision_type != Mesh::SUBDIVISION_NONE) {
                BL::Modifier subsurf_mod = 
object.modifiers[object.modifiers.length()-1];
 
                subsurf_mod.show_render(subsurf_mod_show_render);
@@ -76,7 +76,7 @@ static inline BL::Mesh object_to_mesh(BL::BlendData& data,
                if(me.use_auto_smooth()) {
                        me.calc_normals_split();
                }
-               if(!subdivision) {
+               if(subdivision_type == Mesh::SUBDIVISION_NONE) {
                        me.calc_tessface(true);
                }
        }

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

Reply via email to