- Timestamp:
- Mar 8, 2010, 12:52:58 PM (15 years ago)
- Location:
- trunk
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk
- Property svn:mergeinfo changed
/branches/vendor/nokia/qt/4.6.2 (added) merged: 650 /branches/vendor/nokia/qt/current merged: 649 /branches/vendor/nokia/qt/4.6.1 removed
- Property svn:mergeinfo changed
-
trunk/src/plugins/gfxdrivers/directfb/qdirectfbpaintengine.cpp
r561 r651 1 1 /**************************************************************************** 2 2 ** 3 ** Copyright (C) 20 09Nokia Corporation and/or its subsidiary(-ies).3 ** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). 4 4 ** All rights reserved. 5 5 ** Contact: Nokia Corporation (qt-info@nokia.com) … … 104 104 void blit(const QRectF &dest, IDirectFBSurface *surface, const QRectF &src); 105 105 106 inline bool supportsStretchBlit() const; 107 106 108 inline void updateClip(); 107 109 virtual void systemStateChanged(); … … 527 529 if (!(d->compositionModeStatus & QDirectFBPaintEnginePrivate::PorterDuff_SupportedBlits) 528 530 || (d->transformationType & QDirectFBPaintEnginePrivate::Matrix_BlitsUnsupported) 529 || d->clipType == QDirectFBPaintEnginePrivate::ComplexClip 531 || (d->clipType == QDirectFBPaintEnginePrivate::ComplexClip) 532 || (!d->supportsStretchBlit() && state()->matrix.mapRect(r).size() != sr.size()) 530 533 #ifndef QT_DIRECTFB_IMAGECACHE 531 || QDirectFBScreen::getSurfacePixelFormat(image.format()) == DSPF_UNKNOWN534 || (QDirectFBScreen::getSurfacePixelFormat(image.format()) == DSPF_UNKNOWN) 532 535 #elif defined QT_NO_DIRECTFB_PREALLOCATED 533 || QDirectFBPaintEnginePrivate::cacheCost(image) > imageCache.maxCost()536 || (QDirectFBPaintEnginePrivate::cacheCost(image) > imageCache.maxCost()) 534 537 #endif 535 538 ) … … 574 577 QDirectFBPixmapData *dfbData = static_cast<QDirectFBPixmapData*>(data); 575 578 if (!(d->compositionModeStatus & QDirectFBPaintEnginePrivate::PorterDuff_SupportedBlits) 576 || (d->transformationType & QDirectFBPaintEnginePrivate::Matrix_BlitsUnsupported) 577 || d->clipType == QDirectFBPaintEnginePrivate::ComplexClip 578 || (state()->renderHints & QPainter::SmoothPixmapTransform 579 && state()->matrix.mapRect(r).size() != sr.size())) { 579 || (d->transformationType & QDirectFBPaintEnginePrivate::Matrix_BlitsUnsupported) 580 || (d->clipType == QDirectFBPaintEnginePrivate::ComplexClip) 581 || (!d->supportsStretchBlit() && state()->matrix.mapRect(r).size() != sr.size())) { 580 582 RASTERFALLBACK(DRAW_PIXMAP, r, pixmap.size(), sr); 581 583 const QImage *img = dfbData->buffer(); … … 607 609 } else if (!(d->compositionModeStatus & QDirectFBPaintEnginePrivate::PorterDuff_SupportedBlits) 608 610 || (d->transformationType & QDirectFBPaintEnginePrivate::Matrix_BlitsUnsupported) 609 || d->clipType == QDirectFBPaintEnginePrivate::ComplexClip610 || ( state()->renderHints & QPainter::SmoothPixmapTransform&& state()->matrix.isScaling())) {611 || (d->clipType == QDirectFBPaintEnginePrivate::ComplexClip) 612 || (!d->supportsStretchBlit() && state()->matrix.isScaling())) { 611 613 RASTERFALLBACK(DRAW_TILED_PIXMAP, r, pixmap.size(), offset); 612 614 QPixmapData *pixmapData = pixmap.pixmapData(); … … 733 735 if (!(d->compositionModeStatus & QDirectFBPaintEnginePrivate::PorterDuff_SupportedBlits) 734 736 || (d->transformationType & QDirectFBPaintEnginePrivate::Matrix_BlitsUnsupported) 735 || ( state()->renderHints & QPainter::SmoothPixmapTransform&& state()->matrix.isScaling())) {737 || (!d->supportsStretchBlit() && state()->matrix.isScaling())) { 736 738 break; 737 739 } … … 758 760 Q_D(QDirectFBPaintEngine); 759 761 if ((d->transformationType & QDirectFBPaintEnginePrivate::Matrix_RectsUnsupported) 760 || d->clipType == QDirectFBPaintEnginePrivate::ComplexClip762 || (d->clipType == QDirectFBPaintEnginePrivate::ComplexClip) 761 763 || !d->testCompositionMode(0, 0, &color)) { 762 764 RASTERFALLBACK(FILL_RECT, rect, color, VOID_ARG()); … … 1050 1052 result = surface->Blit(surface, s, &sRect, dr.x(), dr.y()); 1051 1053 } else { 1054 Q_ASSERT(supportsStretchBlit()); 1052 1055 const DFBRectangle dRect = { dr.x(), dr.y(), dr.width(), dr.height() }; 1053 1056 result = surface->StretchBlit(surface, s, &sRect, &dRect); … … 1097 1100 IDirectFBSurface *sourceSurface = dfbData->directFBSurface(); 1098 1101 if (transform.isScaling()) { 1102 Q_ASSERT(supportsStretchBlit()); 1099 1103 Q_ASSERT(qMin(transform.m11(), transform.m22()) >= 0); 1100 1104 offset.rx() *= transform.m11(); … … 1185 1189 } 1186 1190 1191 bool QDirectFBPaintEnginePrivate::supportsStretchBlit() const 1192 { 1193 #ifdef QT_DIRECTFB_STRETCHBLIT 1194 return !(q->state()->renderHints & QPainter::SmoothPixmapTransform); 1195 #else 1196 return false; 1197 #endif 1198 } 1199 1200 1187 1201 void QDirectFBPaintEnginePrivate::systemStateChanged() 1188 1202 {
Note:
See TracChangeset
for help on using the changeset viewer.