----------------------------------------------------------------------- CADSWES RiverWare 6.4, Gnats 5449, 2-2014 Geospatial View Background Image: Refresh artifacts when moving objects ----------------------------------------------------------------------- // virtual from QGraphicsScene void RwGraphicsScene::drawBackground (QPainter* painter, const QRectF& exposedRect) { // INPUT: QPixmap* _scaledBgPixmap // First, call base class method QGraphicsScene::drawBackground (painter, exposedRect); // Draw the background image, if it is defined. if (_scaledBgPixmap) { const double opacityFactor (0.5); const QRectF bgImgRect (bgImageRect()); if (exposedRect.contains (bgImgRect)) { const QPointF targetTopLeft (bgImgRect.topLeft()); painter->setOpacity (opacityFactor); // <<< PROBLEM <<<<< painter->drawPixmap (targetTopLeft, *_scaledBgPixmap); } else if (exposedRect.intersects (bgImgRect)) { const QRectF irect (exposedRect.intersected (bgImgRect)); const QPointF irectTopLeft (irect.topLeft()); const double pX (std::max (0.0, (irect.left() - bgImgRect.left()))); const double pY (std::max (0.0, (irect.top() - bgImgRect.top()))); const QRectF sourceRect (pX, pY, irect.width(), irect.height()); painter->setOpacity (opacityFactor); // <<< PROBLEM <<<<< painter->drawPixmap (irectTopLeft, *_scaledBgPixmap, sourceRect); } else { // std::cout << " ... NO INTERSECTION." << std::endl; } } } //--- (end) ---