diff options
author | Germano Cavalcante <germano.costa@ig.com.br> | 2021-07-21 20:46:41 +0300 |
---|---|---|
committer | Germano Cavalcante <germano.costa@ig.com.br> | 2021-07-21 20:46:53 +0300 |
commit | 785d87ee42aa1bb09c6ab3282b9fd602f9c14d62 (patch) | |
tree | 41cd8819dfec5f9bf762ca6fbeac246fa35c9fd8 /source/blender/draw | |
parent | c830c5b16bed32f55b93738f49580a305b906f48 (diff) |
Fix T90017: Bone widget drawing inconsistent with editing
The `lines_loose` extractor did not trigger loose geometry caching.
Diffstat (limited to 'source/blender/draw')
3 files changed, 5 insertions, 4 deletions
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); |