+ const QImage::Format aFormat = QImage::Format_RGB32;
+
+ QImage anExpectedRefImage = theExpectedRefImage.convertToFormat( aFormat );
+ QImage anActualImage = theActualImage.convertToFormat( aFormat );
+
+ QImage aDiff( anExpectedRefImage.width(), anExpectedRefImage.height(), aFormat );
+ QPainter aPainter( &aDiff );
+ aPainter.drawImage( 0, 0, anExpectedRefImage );
+ aPainter.setCompositionMode( QPainter::RasterOp_SourceXorDestination );
+ aPainter.drawImage( 0, 0, anActualImage );
+ return aDiff;
+}
+
+bool TestViewer::AssertImages( QString& theMessage, const QImage* theImage, const char* theCase, bool swapRGB )
+{
+ QImage anActualImage;
+ if( theImage )
+ anActualImage = *theImage;
+ else
+ anActualImage = viewWindow()->getView(OCCViewer_ViewFrame::MAIN_VIEW)->dumpView();
+
+ if( swapRGB )
+ {
+ // A temporary patch for bug in SALOME/OCC dump; the result image contains swapped RGB colors
+ anActualImage = anActualImage.rgbSwapped();
+ }
+
+
+ if( theCase )
+ myKey = theCase;