Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/intern
diff options
context:
space:
mode:
authorSergey Sharybin <sergey.vfx@gmail.com>2014-08-18 16:59:44 +0400
committerSergey Sharybin <sergey.vfx@gmail.com>2014-08-18 16:59:44 +0400
commita6ae12aa6267ed95cea92f4722a7545cdc4f34bd (patch)
tree155096d41871f1a15822d335bc11ca82102a5e2d /intern
parentde12cd706f1f9f12f675dfc118ae68b2c0701d82 (diff)
Fix T41474: Second renderlayer doesnt render if first one has 'Use Surfaces' disabled
Diffstat (limited to 'intern')
-rw-r--r--intern/cycles/blender/blender_mesh.cpp5
1 files changed, 4 insertions, 1 deletions
diff --git a/intern/cycles/blender/blender_mesh.cpp b/intern/cycles/blender/blender_mesh.cpp
index c2254f84aa9..0f7d14ee411 100644
--- a/intern/cycles/blender/blender_mesh.cpp
+++ b/intern/cycles/blender/blender_mesh.cpp
@@ -525,15 +525,18 @@ Mesh *BlenderSync::sync_mesh(BL::Object b_ob, bool object_updated, bool hide_tri
}
/* test if we need to sync */
+ bool use_mesh_geometry = render_layer.use_surfaces || render_layer.use_hair;
Mesh *mesh;
if(!mesh_map.sync(&mesh, key)) {
+ bool have_geometry = mesh->verts.size() != 0;
/* 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
* does not get tagged for recalc */
else if(mesh->used_shaders != used_shaders);
+ else if(use_mesh_geometry != have_geometry);
else {
/* even if not tagged for recalc, we may need to sync anyway
* because the shader needs different mesh attributes */
@@ -567,7 +570,7 @@ Mesh *BlenderSync::sync_mesh(BL::Object b_ob, bool object_updated, bool hide_tri
mesh->used_shaders = used_shaders;
mesh->name = ustring(b_ob_data.name().c_str());
- if(render_layer.use_surfaces || render_layer.use_hair) {
+ if(use_mesh_geometry) {
/* mesh objects does have special handle in the dependency graph,
* they're ensured to have properly updated.
*