Avoid updating and sending to gpu sequential print clearance contours at every frame. Cache them instead and update only their transforms.

Fixed conflicts after cherry-picking e99ee946af
This commit is contained in:
enricoturri1966 2023-03-14 08:21:38 +01:00
parent 77da892927
commit 6974962dd0
8 changed files with 200 additions and 52 deletions

View file

@ -3306,10 +3306,12 @@ unsigned int Plater::priv::update_background_process(bool force_validation, bool
return_state |= UPDATE_BACKGROUND_PROCESS_INVALID;
if (printer_technology == ptFFF) {
const Print* print = background_process.fff_print();
const Polygons polygons = print->get_sequential_print_clearance_polygons();
view3D->get_canvas3d()->set_sequential_print_clearance_visible(!polygons.empty());
view3D->get_canvas3d()->set_sequential_print_clearance_render_fill(!polygons.empty());
view3D->get_canvas3d()->set_sequential_print_clearance_polygons(polygons);
GLCanvas3D::ContoursList contours;
contours.contours = print->get_sequential_print_clearance_contours();
view3D->get_canvas3d()->set_sequential_print_clearance_visible(!contours.empty());
view3D->get_canvas3d()->set_sequential_print_clearance_render_fill(!contours.empty());
view3D->get_canvas3d()->set_sequential_print_clearance_contours(contours);
view3D->get_canvas3d()->set_sequential_print_clearance_evaluating(false);
}
}
}