Cleanup: Move loose geometry cache creation to render data task
This centralizes caching functions.
This commit is contained in:
parent
e850c2b06d
commit
c830c5b16b
|
@ -531,6 +531,7 @@ static void mesh_extract_render_data_node_exec(void *__restrict task_data)
|
|||
|
||||
mesh_render_data_update_normals(mr, data_flag);
|
||||
mesh_render_data_update_looptris(mr, iter_type, data_flag);
|
||||
mesh_render_data_update_loose_geom(mr, update_task_data->cache, iter_type, data_flag);
|
||||
mesh_render_data_update_mat_offsets(mr, update_task_data->cache, data_flag);
|
||||
}
|
||||
|
||||
|
@ -685,9 +686,6 @@ static void mesh_buffer_cache_create_requested(struct TaskGraph *task_graph,
|
|||
double rdata_start = PIL_check_seconds_timer();
|
||||
#endif
|
||||
|
||||
eMRIterType iter_type = extractors.iter_types();
|
||||
eMRDataType data_flag = extractors.data_types();
|
||||
|
||||
MeshRenderData *mr = mesh_render_data_create(me,
|
||||
extraction_cache,
|
||||
is_editmode,
|
||||
|
@ -696,8 +694,7 @@ static void mesh_buffer_cache_create_requested(struct TaskGraph *task_graph,
|
|||
obmat,
|
||||
do_final,
|
||||
do_uvedit,
|
||||
ts,
|
||||
iter_type);
|
||||
ts);
|
||||
mr->use_hide = use_hide;
|
||||
mr->use_subsurf_fdots = use_subsurf_fdots;
|
||||
mr->use_final_mesh = do_final;
|
||||
|
@ -706,6 +703,9 @@ static void mesh_buffer_cache_create_requested(struct TaskGraph *task_graph,
|
|||
double rdata_end = PIL_check_seconds_timer();
|
||||
#endif
|
||||
|
||||
eMRIterType iter_type = extractors.iter_types();
|
||||
eMRDataType data_flag = extractors.data_types();
|
||||
|
||||
struct TaskNode *task_node_mesh_render_data = mesh_extract_render_data_node_create(
|
||||
task_graph, mr, extraction_cache, iter_type, data_flag);
|
||||
|
||||
|
|
|
@ -247,10 +247,13 @@ MeshRenderData *mesh_render_data_create(Mesh *me,
|
|||
const float obmat[4][4],
|
||||
const bool do_final,
|
||||
const bool do_uvedit,
|
||||
const ToolSettings *ts,
|
||||
const eMRIterType iter_type);
|
||||
const ToolSettings *ts);
|
||||
void mesh_render_data_free(MeshRenderData *mr);
|
||||
void mesh_render_data_update_normals(MeshRenderData *mr, const eMRDataType data_flag);
|
||||
void mesh_render_data_update_loose_geom(MeshRenderData *mr,
|
||||
MeshBufferExtractionCache *cache,
|
||||
const eMRIterType iter_type,
|
||||
const eMRDataType data_flag);
|
||||
void mesh_render_data_update_mat_offsets(MeshRenderData *mr,
|
||||
MeshBufferExtractionCache *cache,
|
||||
const eMRDataType data_flag);
|
||||
|
|
|
@ -165,6 +165,17 @@ static void mesh_render_data_ledges_bm(const MeshRenderData *mr,
|
|||
}
|
||||
}
|
||||
|
||||
void mesh_render_data_update_loose_geom(MeshRenderData *mr,
|
||||
MeshBufferExtractionCache *cache,
|
||||
const eMRIterType iter_type,
|
||||
const eMRDataType data_flag)
|
||||
{
|
||||
if (iter_type & (MR_ITER_LEDGE | MR_ITER_LVERT)) {
|
||||
mesh_render_data_loose_geom_ensure(mr, cache);
|
||||
mesh_render_data_loose_geom_load(mr, cache);
|
||||
}
|
||||
}
|
||||
|
||||
/** \} */
|
||||
|
||||
/* ---------------------------------------------------------------------- */
|
||||
|
@ -454,8 +465,7 @@ MeshRenderData *mesh_render_data_create(Mesh *me,
|
|||
const float obmat[4][4],
|
||||
const bool do_final,
|
||||
const bool do_uvedit,
|
||||
const ToolSettings *ts,
|
||||
const eMRIterType iter_type)
|
||||
const ToolSettings *ts)
|
||||
{
|
||||
MeshRenderData *mr = MEM_callocN(sizeof(*mr), __func__);
|
||||
mr->toolsettings = ts;
|
||||
|
@ -565,11 +575,6 @@ MeshRenderData *mesh_render_data_create(Mesh *me,
|
|||
mr->tri_len = poly_to_tri_count(mr->poly_len, mr->loop_len);
|
||||
}
|
||||
|
||||
if (iter_type & (MR_ITER_LEDGE | MR_ITER_LVERT)) {
|
||||
mesh_render_data_loose_geom_ensure(mr, cache);
|
||||
mesh_render_data_loose_geom_load(mr, cache);
|
||||
}
|
||||
|
||||
return mr;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue