Cleanup: Pass field directly to mesh render data creation
Avoid the need to set use_hide afterwards when other things are stored directly.
This commit is contained in:
@@ -696,9 +696,16 @@ void mesh_buffer_cache_create_requested(TaskGraph *task_graph,
|
||||
double rdata_start = BLI_time_now_seconds();
|
||||
#endif
|
||||
|
||||
MeshRenderData *mr = mesh_render_data_create(
|
||||
object, mesh, is_editmode, is_paint_mode, is_mode_active, obmat, do_final, do_uvedit, ts);
|
||||
mr->use_hide = use_hide;
|
||||
MeshRenderData *mr = mesh_render_data_create(object,
|
||||
mesh,
|
||||
is_editmode,
|
||||
is_paint_mode,
|
||||
is_mode_active,
|
||||
obmat,
|
||||
do_final,
|
||||
do_uvedit,
|
||||
use_hide,
|
||||
ts);
|
||||
mr->use_subsurf_fdots = mr->mesh && !mr->mesh->runtime->subsurf_face_dot_tags.is_empty();
|
||||
mr->use_final_mesh = do_final;
|
||||
mr->use_simplify_normals = (scene->r.mode & R_SIMPLIFY) && (scene->r.mode & R_SIMPLIFY_NORMALS);
|
||||
|
||||
@@ -547,6 +547,7 @@ MeshRenderData *mesh_render_data_create(Object *object,
|
||||
const float obmat[4][4],
|
||||
const bool do_final,
|
||||
const bool do_uvedit,
|
||||
const bool use_hide,
|
||||
const ToolSettings *ts)
|
||||
{
|
||||
MeshRenderData *mr = MEM_new<MeshRenderData>(__func__);
|
||||
@@ -555,6 +556,8 @@ MeshRenderData *mesh_render_data_create(Object *object,
|
||||
|
||||
copy_m4_m4(mr->obmat, obmat);
|
||||
|
||||
mr->use_hide = use_hide;
|
||||
|
||||
if (is_editmode) {
|
||||
Mesh *editmesh_eval_final = BKE_object_get_editmesh_eval_final(object);
|
||||
Mesh *editmesh_eval_cage = BKE_object_get_editmesh_eval_cage(object);
|
||||
@@ -679,9 +682,11 @@ MeshRenderData *mesh_render_data_create(Object *object,
|
||||
mr->material_indices = *attributes.lookup<int>("material_index", bke::AttrDomain::Face);
|
||||
|
||||
if (is_mode_active || is_paint_mode) {
|
||||
mr->hide_vert = *attributes.lookup<bool>(".hide_vert", bke::AttrDomain::Point);
|
||||
mr->hide_edge = *attributes.lookup<bool>(".hide_edge", bke::AttrDomain::Edge);
|
||||
mr->hide_poly = *attributes.lookup<bool>(".hide_poly", bke::AttrDomain::Face);
|
||||
if (use_hide) {
|
||||
mr->hide_vert = *attributes.lookup<bool>(".hide_vert", bke::AttrDomain::Point);
|
||||
mr->hide_edge = *attributes.lookup<bool>(".hide_edge", bke::AttrDomain::Edge);
|
||||
mr->hide_poly = *attributes.lookup<bool>(".hide_poly", bke::AttrDomain::Face);
|
||||
}
|
||||
|
||||
mr->select_vert = *attributes.lookup<bool>(".select_vert", bke::AttrDomain::Point);
|
||||
mr->select_edge = *attributes.lookup<bool>(".select_edge", bke::AttrDomain::Edge);
|
||||
|
||||
@@ -2164,9 +2164,16 @@ static bool draw_subdiv_create_requested_buffers(Object *ob,
|
||||
draw_subdiv_cache_ensure_mat_offsets(draw_cache, mesh_eval, batch_cache.mat_len);
|
||||
}
|
||||
|
||||
MeshRenderData *mr = mesh_render_data_create(
|
||||
ob, mesh, is_editmode, is_paint_mode, is_mode_active, obmat, do_final, do_uvedit, ts);
|
||||
mr->use_hide = use_hide;
|
||||
MeshRenderData *mr = mesh_render_data_create(ob,
|
||||
mesh,
|
||||
is_editmode,
|
||||
is_paint_mode,
|
||||
is_mode_active,
|
||||
obmat,
|
||||
do_final,
|
||||
do_uvedit,
|
||||
use_hide,
|
||||
ts);
|
||||
draw_cache.use_hide = use_hide;
|
||||
|
||||
/* Used for setting loop normals flags. Mapped extraction is only used during edit mode.
|
||||
|
||||
@@ -283,6 +283,7 @@ MeshRenderData *mesh_render_data_create(Object *object,
|
||||
const float obmat[4][4],
|
||||
bool do_final,
|
||||
bool do_uvedit,
|
||||
bool use_hide,
|
||||
const ToolSettings *ts);
|
||||
void mesh_render_data_free(MeshRenderData *mr);
|
||||
void mesh_render_data_update_normals(MeshRenderData &mr, eMRDataType data_flag);
|
||||
|
||||
Reference in New Issue
Block a user