Fix T90017: Bone widget drawing inconsistent with editing

The `lines_loose` extractor did not trigger loose geometry caching.
This commit is contained in:
Germano Cavalcante 2021-07-21 14:46:41 -03:00
parent c830c5b16b
commit 785d87ee42
Notes: blender-bot 2023-02-14 10:29:32 +01:00
Referenced by issue #90017, Bone widget drawing inconsistent with editing
3 changed files with 5 additions and 4 deletions

View File

@ -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)

View File

@ -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);
}

View File

@ -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);