Commit Graph

16329 Commits

Author SHA1 Message Date
Vojtech Bubnik
204ae62449 Slight improvement in cost of background slicing cancellation. 2021-06-23 16:37:18 +02:00
Vojtech Bubnik
3a5a0575ef Fixed after removing TBB deprecated APIs 2021-06-23 15:24:05 +02:00
Roman Beránek
e13535f822
drop deprecated TBB components (#6590)
Quite some time ago, many of the TBB components were deprecated in favor
of their near-equivalents in the STL or, in the case of task_scheduler_init,
were broken up and reconstituted under a less ad-hoc logic. Every time a header
file marked deprecated gets included, a rather loud warning is emitted, which
leads to a complete TBB's domination over the stderr stream during build time,
making it harder to notice _legitimate_ warnings.

Instead of merely muting the output with TBB_SUPPRESS_DEPRECATED_MESSAGES,
perform a genuine migration away from the deprecated components with the added
benefit of achieving a source compatibility with oneTBB, the successor to TBB
which has dropped the deprecated API for good.

What got replaced for what?

| Deprecated				| Replacement					|
| ------------------------------------- | --------------------------------------------- |
| `tbb::atomic`				| `std::atomic`					|
| `tbb::mutex`				| `std::mutex`					|
| `tbb::mutex::scoped_lock`		| `std::scoped_lock<std::mutex>`		|
| `tbb::mutex::scoped_lock` (empty)	| `std::unique_lock<std::mutex>` (deferred)	|
| `tbb::task_scheduler_init`		| `tbb::global_control`				|
| `tbb::this_thread`			| `std::this_thread`				|

Signed-off-by: Roman Beranek <roman.beranek@prusa3d.com>
2021-06-23 11:48:48 +02:00
enricoturri1966
7a7108b2ad Fixed warning 2021-06-23 10:30:15 +02:00
tamasmeszaros
d15055e547 Merge branch 'tm_seh_err_report_fix' 2021-06-22 18:14:08 +02:00
tamasmeszaros
2096a6dbbf Fix error reporting when cgal mesh boolean crashes.
Change error report when catching SEH on cgal mesh boolean.
2021-06-22 18:13:35 +02:00
rtyr
48cd3b21b6
Updated Prusa MINI machine limits. 2021-06-22 12:19:21 +02:00
tamasmeszaros
15c0183647 Merge branch 'tm_arrange_rot'
fixes #6606
2021-06-22 11:52:32 +02:00
rtyr
77c4aebebe
1.4.0-alpha1 Added new SL1S resin profiles. 2021-06-22 11:23:39 +02:00
tamasmeszaros
49c6ce76d0 Search for suitable rotation when arranging items larger than the bed 2021-06-22 11:23:32 +02:00
Vojtech Bubnik
d3233d66fb Fixing previous commit 2021-06-22 10:05:03 +02:00
Vojtech Bubnik
c0715866ff Win32 specific: SEH handler on background thread. Catches Windows
structured exceptions (hard crashes, segmentation faults...),
converts them to Slic3r::HardCrash exceptions and displays the exception
using the usual PrusaSlicer way.
The SEH handler is installed on the main background slicing thread
as of now, therefore hard crashes in TBB worker threads are not handled.
2021-06-22 09:54:08 +02:00
rtyr
c64ce8777f
Added new AzteQ Industrial printer, added DeltiQ 2 profiles for 0.6mm nozzle, added material ASA 275 (Spectrum), some minor setting improvements 2021-06-21 17:12:04 +02:00
rtyr
b7643850ee
Bumped up config version to 1.4.0-alpha0. 2021-06-21 16:57:48 +02:00
YuSanka
4e59fd504e DoubleSlider: Fixed out of range assert 2021-06-21 14:30:28 +02:00
Vojtech Bubnik
d291bb397b Fixed compiler warnings 2021-06-20 16:39:10 +02:00
Vojtech Bubnik
0d70a2be69 Renamed create_face_neighbors_index() to its_face_edge_ids().
Renamed its_create_neighbors_index() / its_create_neighbors_index_par() to its_face_neighbors() / its_face_neighbors_par().
New variant of its_face_edge_ids() to create edge IDs from face neighbors.
Fixed some incorrect use of _NDEBUG, it should be NDEBUG.
PrintObject::slice_support_volumes() returns newly Polygons, which are cheaper than ExPolygons.
Updated SeamPlacer and SupportMaterial to use regions defined as Polygons, not ExPolygons.
TriangleSelector::get_facets_strict() returning a patch with T-joints retriangulated.
New slice_mesh_slabs() - slicing projections of a triangle patch into top / bottom layers of slices, for MMU top / bottom segmentation.
TriangleMeshSlicer - use 64 mutexes instead of one when scattering sliced triangles into layers. This makes a big difference on modern many core desktop computers.
When applying MM segmented regions to input regions, the split regions are now re-merged with 10x higher positive offset epsilon to avoid creating gaps.
When testing for existence of paint-on supports or seam, use a more efficient has_facets() test, which does not deserialize into the expensive TriangleSelector tree structure.
GLIndexedVertexArray newly uses Eigen::AlignedBox<float, 3> for efficiency instead of our double based BoundingBoxf3.
Improved MMU painting refresh speed by optimizing generation of the vertex buffers.
Refactored MMU segmentation - projection of painted surfaces from top / bottom.
	1) Parallelized.
	2) Using the new slice_mesh_slabs() instead of projecting one triangle by the other and merging them with Clipper.
2021-06-20 15:21:12 +02:00
combolek
d08a70478e
Fixes Linux (and probably MacOS) build: wx/msw/registry.h is only available on Windows. (#6634) 2021-06-19 11:45:48 +02:00
YuSanka
5434a8980f Some code beautification for the last commit
+ Fix of the TabPresetComboBox layout for "light mode" + "tabs as a menu items" preferences
2021-06-18 21:54:20 +02:00
Oleksandra Yushchenko
fd071421cb
DarkMode for MSW (#6632)
* MSW specific: Dark Mode: First implementation

* Use menu instead of NoteBook

* Implemented MessageDialog
+ Fixed DarkMode for all dialogs and ColorPicker

* MSW DarkMode: Added missed updates for the switching between modes

* MSW DarkMode: Updated all existed context menus after switching of the mode
+ Added markers for the menu item witch is related to the selected tab

* Used wxFrame instead of wxDialog for SettingsDialog
(this change allow us to use menu bar in SettingsDialog)

+ fix for #6548 - Prusa Slicer 2.3.1 not activating non-modal settings window if settings window is minimized

* Implemented "Always use Dark mode colors" preference option

* Fixes for non_MSW build

* Next fixes for non-MSW builds

* Preferences: Fixed selection of the Settings Layout for non-MSW platforms
+ Updated DarkMode for colorpickers

* Windows DarkMode next fixes

* MSWDarkMode: Suppress to use system color to the PrusaSlicer
Select "Preferences -> Use Dark color mode (experimental)" to allow dark mode for the application

* Fixed MSW build

* MSWDarkMode: Upadteed color mode for ExtruderSequenceDialog and for dialogs related to the DoubleSlider

* Implemented Auto recreation of the PrusaSlicer when color mode is changed.

* Preferences: Added option "Set settings tabs as menu items (experimental)"
2021-06-18 19:46:04 +02:00
YuSanka
65f440c2ba Follow-up e3000c5305 - Fixed OSX build 2021-06-18 12:22:59 +02:00
tamasmeszaros
d3de14170a Fix build for unixes 2021-06-17 22:21:34 +02:00
YuSanka
e3000c5305 Implementation of the FR #3856 - Add option to replace stl in object list (right panel) 2021-06-17 21:29:18 +02:00
Lukáš Hejl
684b66125e Fixed an issue where multi-material segmentation ignored the last extruder. 2021-06-17 19:26:40 +02:00
tamasmeszaros
1126241767 Merge branch 'tm_sigsegv_recover_SEH' 2021-06-17 15:17:40 +02:00
tamasmeszaros
a5529aff1e Implement custom integer->string conversion for hashing
Converts to hexadecimal, reversed order which is faster.
2021-06-17 15:40:22 +02:00
tamasmeszaros
976dd72b8b Catching of sigsegv and sigfpe with structured exceptions on win 2021-06-17 15:17:21 +02:00
enricoturri1966
72df789077 Fixed the following crash:
1) Start PrusaSlicer

2) Add a box to the plater

3) Open Seam Painting or Paint - on supports gizmo

4) Save project

->crash
2021-06-17 08:16:54 +02:00
rtyr
3e5fa7b591
1.3.0-alpha2 Added SL1S SPEED profiles. 2021-06-16 19:48:31 +02:00
rtyr
9bbda55bb4
SL1S resources 2021-06-16 19:33:45 +02:00
YuSanka
c5cb94d92c Follow up 0b5ea8f429
- Un-select random sequence by default
- Added a check for interval height. It have to be bigger then print layer height
2021-06-16 18:20:26 +02:00
Lukáš Hejl
2e54648b97 Fixed a multi-material painting gizmo crash when extruders colors aren't initialized, which happens when switching between SLA and FDM printer. 2021-06-16 17:05:24 +02:00
Lukáš Hejl
b32202e597 Fixed incorrectly displayed custom supports and seams in the support and seam gizmos after 7377fc34ac. 2021-06-16 13:41:35 +02:00
Vojtech Bubnik
d0411223be TriangleSelector:
1) Fixing yesterday's regression in deserialization of older painted 3MFs
   (order of triangle children is now reversed, thus the serialization
    / deserialization has to take it into account).
2) WIP extraction into facets to triangulate T-joints.
2021-06-16 10:52:00 +02:00
Lukáš Hejl
ccb53f71b6 Merge branch 'lh_multi_material_segmentation_fix' 2021-06-16 06:06:07 +02:00
Lukáš Hejl
6ddd88e596 Fixed an issue where the color of the first extruder always replaced the default color after painting in a multi-material gizmo.
multi_material_segmentation_by_painting is now returning only the painted region. Regions with default colors that aren't painted by multi-material gizmo aren't returned.
2021-06-16 06:06:37 +02:00
Lukáš Hejl
ae1a799cf4 Fixed an issue for multi-volume objects where the seed fill visualization in the multi-material gizmo didn't disappear after the mouse was moved to another volume. 2021-06-16 06:06:34 +02:00
Lukáš Hejl
c59cf5de40 Fixed layers with the wrong color after multi-material segmentation on objects with multiple objects. 2021-06-16 06:06:34 +02:00
Lukáš Hejl
21b38db488 Added using the move operator in some parts of multi-material segmentation. 2021-06-16 06:06:34 +02:00
Lukáš Hejl
a06e42d01f Moved debug prints out of parallel cycles, and more debug prints were added for multi-material segmentation. 2021-06-16 06:06:34 +02:00
Lukáš Hejl
15a1b51339 Refactoring and cleanup of painting gizmos. 2021-06-16 06:06:34 +02:00
Lukáš Hejl
8a77fa38f0 Modified MMU painting gizmo behavior so that all triangles aren't painted by default by the first extruder, which was causing several problems.
This commit also fixed the following issues:
1) After loading a 3MF with painted triangles using the MMU painting gizmo, the painted triangles might not be displayed correctly in the MMU painting gizmo.
2) The MMU segmentation was unnecessarily executed for all layers and not just for the painted layers.
3) Object's base color wasn't changed when the assigned extruder for that object was changed while the MMU paint gizmo was opened.
4) Changing the base color of an object was only possible by removing all painted triangles.
2021-06-16 06:06:34 +02:00
Lukáš Hejl
b2677f513c Fixed a possible crash when closing the MMU painting gizmo cause by a non-virtual destructor. 2021-06-16 06:06:33 +02:00
Lukáš Hejl
7377fc34ac Fixed cracks in MMU painting gizmo. All triangles, even not painted triangles, are now rendered inside MMU painting gizmo.
The cracks were caused by using glPolygonOffset to resolve Z-fighting. All triangles of the object were firstly rendered entirely with a base color. And then paint triangles were drawn over these already rendered triangles.
2021-06-16 06:06:33 +02:00
Lukáš Hejl
de9ed9ee3e Follow-up of 39fd8065a1: Apply changes also for MMU painting gizmo, so shader->start_using() is called only once. 2021-06-16 06:06:33 +02:00
Lukáš Hejl
c751f2d638 Show info about multi-material segmentation in ObjectList. 2021-06-16 06:06:33 +02:00
Vojtech Bubnik
154e552006 TriangleSelector optimizations:
1) When splitting a triangle, vertices are now properly shared with
   the neighbor triangles, if these are already split.
   Please note that the splitting may not be regular if the splitting
   thershold is changed between splitting calls. Still the new code
   shares the vertices accross shared edges properly.
2) Triangles resp. vertices are newly reused after deleted using
   linked lists of released triangles resp. vertices.
   This mechanism replaces the old mechanism of reusing already split
   triangles.
2021-06-15 14:43:46 +02:00
YuSanka
0b5ea8f429 Random extruder sequence for MMU.
Related to https://github.com/prusa3d/PrusaSlicer/issues/1866
2021-06-15 12:38:05 +02:00
enricoturri1966
a2788f3a73 GCode Viewer -> Fixed used filament for gcode files produced by other slicers 2021-06-15 09:39:33 +02:00
Vojtech Bubnik
2f8190e6d0 Workaround of boost::filesystem::copy_file() incompatibility
on some file systems (eCrypt ...)
Should fix #4716 #6588
2021-06-14 12:19:13 +02:00