From cca4405437363bd1cb3d8ee9a77691fd8225d76f Mon Sep 17 00:00:00 2001 From: Sergey Sharybin Date: Thu, 9 Apr 2015 21:21:48 +0500 Subject: Cycles: Fix wrong render result in certain configuration of render layer's surface/hair There were some synchronization missing in cases when only one of those settings was disabled. Also added a render test for such configurations now. --- intern/cycles/render/mesh.cpp | 2 +- intern/cycles/render/mesh.h | 9 +++++++-- 2 files changed, 8 insertions(+), 3 deletions(-) (limited to 'intern/cycles/render') diff --git a/intern/cycles/render/mesh.cpp b/intern/cycles/render/mesh.cpp index 1d453164aa8..b31e09c6ef9 100644 --- a/intern/cycles/render/mesh.cpp +++ b/intern/cycles/render/mesh.cpp @@ -135,7 +135,7 @@ void Mesh::clear() transform_applied = false; transform_negative_scaled = false; transform_normal = transform_identity(); - geometry_synced = false; + geometry_flags = GEOMETRY_NONE; } int Mesh::split_vertex(int vertex) diff --git a/intern/cycles/render/mesh.h b/intern/cycles/render/mesh.h index 62e775e5bc9..6eaafea8729 100644 --- a/intern/cycles/render/mesh.h +++ b/intern/cycles/render/mesh.h @@ -71,8 +71,13 @@ public: ustring name; /* Mesh Data */ - bool geometry_synced; /* used to distinguish meshes with no verts - and meshed for which geometry is not created */ + enum GeometryFlags { + GEOMETRY_NONE = 0, + GEOMETRY_TRIANGLES = (1 << 0), + GEOMETRY_CURVES = (1 << 1), + }; + int geometry_flags; /* used to distinguish meshes with no verts + and meshed for which geometry is not created */ vector verts; vector triangles; -- cgit v1.2.3