[Bf-blender-cvs] [785d87ee42a] master: Fix T90017: Bone widget drawing inconsistent with editing
Germano Cavalcante
noreply at git.blender.org
Wed Jul 21 19:55:29 CEST 2021
Commit: 785d87ee42aa1bb09c6ab3282b9fd602f9c14d62
Author: Germano Cavalcante
Date: Wed Jul 21 14:46:41 2021 -0300
Branches: master
https://developer.blender.org/rB785d87ee42aa1bb09c6ab3282b9fd602f9c14d62
Fix T90017: Bone widget drawing inconsistent with editing
The `lines_loose` extractor did not trigger loose geometry caching.
===================================================================
M source/blender/draw/intern/draw_cache_extract.h
M source/blender/draw/intern/draw_cache_extract_mesh_render_data.c
M source/blender/draw/intern/mesh_extractors/extract_mesh_ibo_lines.cc
===================================================================
diff --git a/source/blender/draw/intern/draw_cache_extract.h b/source/blender/draw/intern/draw_cache_extract.h
index a0694a08f0b..f2f769534ca 100644
--- a/source/blender/draw/intern/draw_cache_extract.h
+++ b/source/blender/draw/intern/draw_cache_extract.h
@@ -81,9 +81,10 @@ typedef enum eMRDataType {
MR_DATA_POLY_NOR = 1 << 1,
MR_DATA_LOOP_NOR = 1 << 2,
MR_DATA_LOOPTRI = 1 << 3,
+ MR_DATA_LOOSE_GEOM = 1 << 4,
/** Force loop normals calculation. */
- MR_DATA_TAN_LOOP_NOR = 1 << 4,
- MR_DATA_MAT_OFFSETS = 1 << 5,
+ MR_DATA_TAN_LOOP_NOR = 1 << 5,
+ MR_DATA_MAT_OFFSETS = 1 << 6,
} eMRDataType;
ENUM_OPERATORS(eMRDataType, MR_DATA_MAT_OFFSETS)
diff --git a/source/blender/draw/intern/draw_cache_extract_mesh_render_data.c b/source/blender/draw/intern/draw_cache_extract_mesh_render_data.c
index 041dd07b367..bec21bd5a8c 100644
--- a/source/blender/draw/intern/draw_cache_extract_mesh_render_data.c
+++ b/source/blender/draw/intern/draw_cache_extract_mesh_render_data.c
@@ -170,7 +170,7 @@ void mesh_render_data_update_loose_geom(MeshRenderData *mr,
const eMRIterType iter_type,
const eMRDataType data_flag)
{
- if (iter_type & (MR_ITER_LEDGE | MR_ITER_LVERT)) {
+ if ((iter_type & (MR_ITER_LEDGE | MR_ITER_LVERT)) || (data_flag & MR_DATA_LOOSE_GEOM)) {
mesh_render_data_loose_geom_ensure(mr, cache);
mesh_render_data_loose_geom_load(mr, cache);
}
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 2c2603af1b2..6c677debf88 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
@@ -237,7 +237,7 @@ constexpr MeshExtract create_extractor_lines_loose_only()
{
MeshExtract extractor = {nullptr};
extractor.init = extract_lines_loose_only_init;
- extractor.data_type = MR_DATA_NONE;
+ extractor.data_type = MR_DATA_LOOSE_GEOM;
extractor.data_size = 0;
extractor.use_threading = false;
extractor.mesh_buffer_offset = offsetof(MeshBufferCache, ibo.lines_loose);
More information about the Bf-blender-cvs
mailing list