First of all I would optimize the existing solution and turn all paint caches off, because you have your own image cache:
a) Spectrogram item
spectrogram->setCachePolicy(QwtPlotRasterItem::NoCache);
To copy to clipboard, switch view to plain text mode
b) Plot canvas
plot
->canvas
()->setPaintAttribute
(QwtPlotCanvas::PaintCached,
false);
plot
->canvas
()->setPaintAttribute
(QwtPlotCanvas::PaintPacked,
false);
plot->canvas()->setPaintAttribute(QwtPlotCanvas::PaintCached, false);
plot->canvas()->setPaintAttribute(QwtPlotCanvas::PaintPacked, false);
To copy to clipboard, switch view to plain text mode
c) Qt ( only supported on X11 )
plot->canvas()->setAttribute(Qt::WA_PaintOnScreen, true);
plot->canvas()->setAttribute(Qt::WA_PaintOnScreen, true);
To copy to clipboard, switch view to plain text mode
Another optimization on multicore systems is to render parts of the image parallel in several threads.
Uwe
Bookmarks