[Bf-blender-cvs] [38b0141554] master: Cycles: Pass explicit subdivision type to object_to_mesh
Sergey Sharybin
noreply at git.blender.org
Wed Jan 11 16:43:40 CET 2017
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);
}
}
More information about the Bf-blender-cvs
mailing list