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:
authorAntonio Vazquez <blendergit@gmail.com>2022-06-16 21:07:02 +0300
committerAntonio Vazquez <blendergit@gmail.com>2022-06-16 21:07:02 +0300
commitc27a395d8cd8b58b3155cfdc26ae35198fbcdb14 (patch)
tree665b37d674c62451ddd954c6012bab9d9ec4a862 /source/blender/draw/intern/mesh_extractors/extract_mesh_ibo_lines.cc
parent29d24182b76be06b11c66138cb26cd63da0f9130 (diff)
parent209bf7780e7c005650482fa843062864f91845af (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.cc20
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();
-}