mirror of
https://github.com/KLayout/klayout.git
synced 2026-09-03 16:30:20 +02:00
Use multiple drawing workers for image_with_options rendering
LayoutCanvas::image_with_options always rendered the layout with a single thread (workers = 0), which serialized image generation even on views configured for parallel drawing. Now it honors the view's drawing_workers() count when the view is not in synchronous mode, and waits for the asynchronous workers to finish before reading back the rendered bitmaps. This speeds up image export on large layouts while preserving the original single-threaded behavior in synchronous mode.
This commit is contained in:
@@ -855,7 +855,9 @@ LayoutCanvas::image_with_options (unsigned int width, unsigned int height, int l
|
||||
lay::RedrawThread redraw_thread (&rd_canvas, mp_view);
|
||||
|
||||
// render the layout
|
||||
redraw_thread.start (0 /*synchronous*/, m_layers, vp, resolution, font_resolution, true);
|
||||
int workers = mp_view->synchronous () ? 0 : mp_view->drawing_workers ();
|
||||
redraw_thread.start (workers, m_layers, vp, resolution, font_resolution, true);
|
||||
redraw_thread.wait ();
|
||||
redraw_thread.stop (); // safety
|
||||
|
||||
// paint the background objects. It uses "img" to paint on.
|
||||
|
||||
Reference in New Issue
Block a user