[Bf-blender-cvs] [6f1a8739a03] blender2.8: DWM: Fix face center's not working w/ hidden faces
Campbell Barton
noreply at git.blender.org
Mon May 8 09:53:40 CEST 2017
Commit: 6f1a8739a03f03cda07f43eb02219c8f2f509ee8
Author: Campbell Barton
Date: Mon May 8 16:16:28 2017 +1000
Branches: blender2.8
https://developer.blender.org/rB6f1a8739a03f03cda07f43eb02219c8f2f509ee8
DWM: Fix face center's not working w/ hidden faces
===================================================================
M source/blender/draw/intern/draw_cache_impl_mesh.c
===================================================================
diff --git a/source/blender/draw/intern/draw_cache_impl_mesh.c b/source/blender/draw/intern/draw_cache_impl_mesh.c
index bd2d933f34a..3cde00e14d1 100644
--- a/source/blender/draw/intern/draw_cache_impl_mesh.c
+++ b/source/blender/draw/intern/draw_cache_impl_mesh.c
@@ -2895,11 +2895,10 @@ Batch *DRW_mesh_batch_cache_get_overlay_facedots(Mesh *me)
}
const int vbo_len_capacity = mesh_render_data_polys_len_get(rdata);
- int vbo_len_used = 0;
+ int vidx = 0;
VertexBuffer *vbo = VertexBuffer_create_with_format(&format);
VertexBuffer_allocate_data(vbo, vbo_len_capacity);
-
for (int i = 0; i < vbo_len_capacity; ++i) {
float pcenter[3], pnor[3];
bool selected = false;
@@ -2910,17 +2909,19 @@ Batch *DRW_mesh_batch_cache_get_overlay_facedots(Mesh *me)
PackedNormal nor = { .x = 0, .y = 0, .z = -511 };
nor = convert_i10_v3(pnor);
nor.w = selected ? 1 : 0;
- VertexBuffer_set_attrib(vbo, data_id, i, &nor);
+ VertexBuffer_set_attrib(vbo, data_id, vidx, &nor);
#else
float nor[4] = {pnor[0], pnor[1], pnor[2], selected ? 1 : 0};
- VertexBuffer_set_attrib(vbo, data_id, i, nor);
+ VertexBuffer_set_attrib(vbo, data_id, vidx, nor);
#endif
- VertexBuffer_set_attrib(vbo, pos_id, i, pcenter);
+ VertexBuffer_set_attrib(vbo, pos_id, vidx, pcenter);
+
+ vidx += 1;
- vbo_len_used += 1;
}
}
+ const int vbo_len_used = vidx;
if (vbo_len_used != vbo_len_capacity) {
VertexBuffer_resize_data(vbo, vbo_len_used);
}
More information about the Bf-blender-cvs
mailing list