From d2c05b0c8557625ce45cdbd98ebf102972d2c2f4 Mon Sep 17 00:00:00 2001 From: Shawn Rutledge Date: Thu, 14 Sep 2017 15:14:32 +0200 Subject: Tablet example: paint only the changed areas of the canvas This improves performance significantly. Change-Id: I9a8782148ce03a2bc85759c4e8c1eecb37467cf6 Reviewed-by: Friedemann Kleint --- examples/widgets/widgets/tablet/tabletcanvas.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'examples') diff --git a/examples/widgets/widgets/tablet/tabletcanvas.cpp b/examples/widgets/widgets/tablet/tabletcanvas.cpp index 3ff26d2ec8..bfcc84e182 100644 --- a/examples/widgets/widgets/tablet/tabletcanvas.cpp +++ b/examples/widgets/widgets/tablet/tabletcanvas.cpp @@ -148,12 +148,14 @@ void TabletCanvas::initPixmap() m_pixmap = newPixmap; } -void TabletCanvas::paintEvent(QPaintEvent *) +void TabletCanvas::paintEvent(QPaintEvent *event) { if (m_pixmap.isNull()) initPixmap(); QPainter painter(this); - painter.drawPixmap(0, 0, m_pixmap); + QRect pixmapPortion = QRect(event->rect().topLeft() * devicePixelRatioF(), + event->rect().size() * devicePixelRatioF()); + painter.drawPixmap(event->rect().topLeft(), m_pixmap, pixmapPortion); } //! [4] -- cgit v1.2.3