diff options
author | Antonio Vazquez <blendergit@gmail.com> | 2022-06-16 21:07:02 +0300 |
---|---|---|
committer | Antonio Vazquez <blendergit@gmail.com> | 2022-06-16 21:07:02 +0300 |
commit | c27a395d8cd8b58b3155cfdc26ae35198fbcdb14 (patch) | |
tree | 665b37d674c62451ddd954c6012bab9d9ec4a862 /source/blender/draw/intern/mesh_extractors/extract_mesh_ibo_lines.cc | |
parent | 29d24182b76be06b11c66138cb26cd63da0f9130 (diff) | |
parent | 209bf7780e7c005650482fa843062864f91845af (diff) |
Merge branch 'master' into asset-greasepencil
Diffstat (limited to 'source/blender/draw/intern/mesh_extractors/extract_mesh_ibo_lines.cc')
-rw-r--r-- | source/blender/draw/intern/mesh_extractors/extract_mesh_ibo_lines.cc | 20 |
1 files changed, 13 insertions, 7 deletions
diff --git a/source/blender/draw/intern/mesh_extractors/extract_mesh_ibo_lines.cc b/source/blender/draw/intern/mesh_extractors/extract_mesh_ibo_lines.cc index 3cecaf81b8a..4e89b34c0a0 100644 --- a/source/blender/draw/intern/mesh_extractors/extract_mesh_ibo_lines.cc +++ b/source/blender/draw/intern/mesh_extractors/extract_mesh_ibo_lines.cc @@ -7,7 +7,7 @@ #include "MEM_guardedalloc.h" -#include "extract_mesh.h" +#include "extract_mesh.hh" #include "draw_subdivision.h" @@ -183,10 +183,18 @@ static void extract_lines_loose_geom_subdiv(const DRWSubdivCache *subdiv_cache, uint *flags_data = static_cast<uint *>(GPU_vertbuf_get_data(flags)); - const MEdge *medge = mr->medge; - - for (DRWSubdivLooseEdge edge : loose_edges) { - *flags_data++ = (medge[edge.coarse_edge_index].flag & ME_HIDE) != 0; + if (mr->extract_type == MR_EXTRACT_MESH) { + const MEdge *medge = mr->medge; + for (DRWSubdivLooseEdge edge : loose_edges) { + *flags_data++ = (medge[edge.coarse_edge_index].flag & ME_HIDE) != 0; + } + } + else { + BMesh *bm = mr->bm; + for (DRWSubdivLooseEdge edge : loose_edges) { + const BMEdge *bm_edge = BM_edge_at_index(bm, edge.coarse_edge_index); + *flags_data++ = BM_elem_flag_test_bool(bm_edge, BM_ELEM_HIDDEN) != 0; + } } GPUIndexBuf *ibo = static_cast<GPUIndexBuf *>(buffer); @@ -320,9 +328,7 @@ constexpr MeshExtract create_extractor_lines_loose_only() } // namespace blender::draw -extern "C" { const MeshExtract extract_lines = blender::draw::create_extractor_lines(); const MeshExtract extract_lines_with_lines_loose = blender::draw::create_extractor_lines_with_lines_loose(); const MeshExtract extract_lines_loose_only = blender::draw::create_extractor_lines_loose_only(); -} |