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
diff options
context:
space:
mode:
authorMai Lavelle <mai.lavelle@gmail.com>2016-06-03 03:57:04 +0300
committerMai Lavelle <mai.lavelle@gmail.com>2016-06-07 14:38:09 +0300
commitb6954c8da1c4aa9816bccf246d80f134f7da90cc (patch)
tree5b26d25e802690da7e232b93fcb4c93687dadabf
parentf08018f92868806bd840670e7e94c65d83a069c0 (diff)
Cycles: Fix regression introduced in c96a4c8
A few places still needed to be updated to use the new Mesh::num_triangles() method; wrong number from triangles.size() was causing crashes.
-rw-r--r--intern/cycles/bvh/bvh_split.cpp2
-rw-r--r--intern/cycles/render/mesh.cpp2
-rw-r--r--intern/cycles/subd/subd_dice.cpp4
3 files changed, 4 insertions, 4 deletions
diff --git a/intern/cycles/bvh/bvh_split.cpp b/intern/cycles/bvh/bvh_split.cpp
index 3665fb42bc2..bf68b41021f 100644
--- a/intern/cycles/bvh/bvh_split.cpp
+++ b/intern/cycles/bvh/bvh_split.cpp
@@ -404,7 +404,7 @@ void BVHSpatialSplit::split_object_reference(const Object *object,
BoundBox& right_bounds)
{
Mesh *mesh = object->mesh;
- for(int tri_idx = 0; tri_idx < mesh->triangles.size(); ++tri_idx) {
+ for(int tri_idx = 0; tri_idx < mesh->num_triangles(); ++tri_idx) {
split_triangle_primitive(mesh,
&object->tfm,
tri_idx,
diff --git a/intern/cycles/render/mesh.cpp b/intern/cycles/render/mesh.cpp
index 755b16a51c7..e25155630bd 100644
--- a/intern/cycles/render/mesh.cpp
+++ b/intern/cycles/render/mesh.cpp
@@ -1485,7 +1485,7 @@ bool Mesh::need_attribute(Scene * /*scene*/, ustring name)
void Mesh::tessellate(DiagSplit *split)
{
- int num_faces = triangles.size();
+ int num_faces = num_triangles();
add_face_normals();
add_vertex_normals();
diff --git a/intern/cycles/subd/subd_dice.cpp b/intern/cycles/subd/subd_dice.cpp
index 8dba1379855..7c74f21950e 100644
--- a/intern/cycles/subd/subd_dice.cpp
+++ b/intern/cycles/subd/subd_dice.cpp
@@ -46,7 +46,7 @@ void EdgeDice::reserve(int num_verts)
Mesh *mesh = params.mesh;
vert_offset = mesh->verts.size();
- tri_offset = mesh->triangles.size();
+ tri_offset = mesh->num_triangles();
mesh->resize_mesh(vert_offset + num_verts, tri_offset);
@@ -84,7 +84,7 @@ void EdgeDice::add_triangle(Patch *patch, int v0, int v1, int v2)
/* todo: optimize so we can reserve in advance, this is like push_back_slow() */
if(mesh->triangles.size() == mesh->triangles.capacity())
- mesh->reserve_mesh(mesh->verts.size(), size_t(max(mesh->triangles.size() + 1, 1) * 1.2));
+ mesh->reserve_mesh(mesh->verts.size(), size_t(max(mesh->num_triangles() + 1, 1) * 1.2));
mesh->add_triangle(v0, v1, v2, params.shader, params.smooth, false);