X-Git-Url: https://sigrok.org/gitweb/?p=pulseview.git;a=blobdiff_plain;f=pv%2Fviews%2Ftrace%2Fanalogsignal.cpp;h=3430ab3cf48eb6996ca0cd52901c1d9c884aa4cb;hp=d9b72addb6a512fea60ed9311b17babffecb6c6a;hb=8a07bc241694c10678968309bc8ee4e6076df3a3;hpb=58cd5b584f5bcb19d7c9bd28391c53dd2488fc59 diff --git a/pv/views/trace/analogsignal.cpp b/pv/views/trace/analogsignal.cpp index d9b72add..3430ab3c 100644 --- a/pv/views/trace/analogsignal.cpp +++ b/pv/views/trace/analogsignal.cpp @@ -319,6 +319,7 @@ void AnalogSignal::paint_fore(QPainter &p, ViewItemPaintParams &pp) void AnalogSignal::paint_grid(QPainter &p, int y, int left, int right) { + bool was_antialiased = p.testRenderHint(QPainter::Antialiasing); p.setRenderHint(QPainter::Antialiasing, false); if (pos_vdivs_ > 0) { @@ -363,7 +364,7 @@ void AnalogSignal::paint_grid(QPainter &p, int y, int left, int right) } } - p.setRenderHint(QPainter::Antialiasing, true); + p.setRenderHint(QPainter::Antialiasing, was_antialiased); } void AnalogSignal::paint_trace(QPainter &p, @@ -443,7 +444,9 @@ void AnalogSignal::paint_trace(QPainter &p, } delete[] sample_block; - p.drawPolyline(points, points_count); + // QPainter::drawPolyline() is slow, let's paint the lines ourselves + for (int64_t i = 1; i < points_count; i++) + p.drawLine(points[i - 1], points[i]); if (show_sampling_points) { if (paint_thr_dots) {