Ignore:
Timestamp:
Mar 8, 2010, 12:52:58 PM (15 years ago)
Author:
Dmitry A. Kuminov
Message:

trunk: Merged in qt 4.6.2 sources.

Location:
trunk
Files:
16 edited

Legend:

Unmodified
Added
Removed
  • trunk

  • trunk/src/plugins/gfxdrivers/directfb/qdirectfbkeyboard.cpp

    r561 r651  
    11/****************************************************************************
    22**
    3 ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
     3** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
    44** All rights reserved.
    55** Contact: Nokia Corporation (qt-info@nokia.com)
  • trunk/src/plugins/gfxdrivers/directfb/qdirectfbkeyboard.h

    r561 r651  
    11/****************************************************************************
    22**
    3 ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
     3** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
    44** All rights reserved.
    55** Contact: Nokia Corporation (qt-info@nokia.com)
  • trunk/src/plugins/gfxdrivers/directfb/qdirectfbmouse.cpp

    r561 r651  
    11/****************************************************************************
    22**
    3 ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
     3** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
    44** All rights reserved.
    55** Contact: Nokia Corporation (qt-info@nokia.com)
  • trunk/src/plugins/gfxdrivers/directfb/qdirectfbmouse.h

    r561 r651  
    11/****************************************************************************
    22**
    3 ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
     3** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
    44** All rights reserved.
    55** Contact: Nokia Corporation (qt-info@nokia.com)
  • trunk/src/plugins/gfxdrivers/directfb/qdirectfbpaintdevice.cpp

    r561 r651  
    11/****************************************************************************
    22**
    3 ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
     3** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
    44** All rights reserved.
    55** Contact: Nokia Corporation (qt-info@nokia.com)
  • trunk/src/plugins/gfxdrivers/directfb/qdirectfbpaintdevice.h

    r561 r651  
    11/****************************************************************************
    22**
    3 ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
     3** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
    44** All rights reserved.
    55** Contact: Nokia Corporation (qt-info@nokia.com)
  • trunk/src/plugins/gfxdrivers/directfb/qdirectfbpaintengine.cpp

    r561 r651  
    11/****************************************************************************
    22**
    3 ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
     3** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
    44** All rights reserved.
    55** Contact: Nokia Corporation (qt-info@nokia.com)
     
    104104    void blit(const QRectF &dest, IDirectFBSurface *surface, const QRectF &src);
    105105
     106    inline bool supportsStretchBlit() const;
     107
    106108    inline void updateClip();
    107109    virtual void systemStateChanged();
     
    527529    if (!(d->compositionModeStatus & QDirectFBPaintEnginePrivate::PorterDuff_SupportedBlits)
    528530        || (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())
    530533#ifndef QT_DIRECTFB_IMAGECACHE
    531         || QDirectFBScreen::getSurfacePixelFormat(image.format()) == DSPF_UNKNOWN
     534        || (QDirectFBScreen::getSurfacePixelFormat(image.format()) == DSPF_UNKNOWN)
    532535#elif defined QT_NO_DIRECTFB_PREALLOCATED
    533         || QDirectFBPaintEnginePrivate::cacheCost(image) > imageCache.maxCost()
     536        || (QDirectFBPaintEnginePrivate::cacheCost(image) > imageCache.maxCost())
    534537#endif
    535538        )
     
    574577        QDirectFBPixmapData *dfbData = static_cast<QDirectFBPixmapData*>(data);
    575578        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())) {
    580582            RASTERFALLBACK(DRAW_PIXMAP, r, pixmap.size(), sr);
    581583            const QImage *img = dfbData->buffer();
     
    607609    } else if (!(d->compositionModeStatus & QDirectFBPaintEnginePrivate::PorterDuff_SupportedBlits)
    608610               || (d->transformationType & QDirectFBPaintEnginePrivate::Matrix_BlitsUnsupported)
    609                || d->clipType == QDirectFBPaintEnginePrivate::ComplexClip
    610                || (state()->renderHints & QPainter::SmoothPixmapTransform && state()->matrix.isScaling())) {
     611               || (d->clipType == QDirectFBPaintEnginePrivate::ComplexClip)
     612               || (!d->supportsStretchBlit() && state()->matrix.isScaling())) {
    611613        RASTERFALLBACK(DRAW_TILED_PIXMAP, r, pixmap.size(), offset);
    612614        QPixmapData *pixmapData = pixmap.pixmapData();
     
    733735            if (!(d->compositionModeStatus & QDirectFBPaintEnginePrivate::PorterDuff_SupportedBlits)
    734736                || (d->transformationType & QDirectFBPaintEnginePrivate::Matrix_BlitsUnsupported)
    735                 || (state()->renderHints & QPainter::SmoothPixmapTransform && state()->matrix.isScaling())) {
     737                || (!d->supportsStretchBlit() && state()->matrix.isScaling())) {
    736738                break;
    737739            }
     
    758760    Q_D(QDirectFBPaintEngine);
    759761    if ((d->transformationType & QDirectFBPaintEnginePrivate::Matrix_RectsUnsupported)
    760         || d->clipType == QDirectFBPaintEnginePrivate::ComplexClip
     762        || (d->clipType == QDirectFBPaintEnginePrivate::ComplexClip)
    761763        || !d->testCompositionMode(0, 0, &color)) {
    762764        RASTERFALLBACK(FILL_RECT, rect, color, VOID_ARG());
     
    10501052        result = surface->Blit(surface, s, &sRect, dr.x(), dr.y());
    10511053    } else {
     1054        Q_ASSERT(supportsStretchBlit());
    10521055        const DFBRectangle dRect = { dr.x(), dr.y(), dr.width(), dr.height() };
    10531056        result = surface->StretchBlit(surface, s, &sRect, &dRect);
     
    10971100    IDirectFBSurface *sourceSurface = dfbData->directFBSurface();
    10981101    if (transform.isScaling()) {
     1102        Q_ASSERT(supportsStretchBlit());
    10991103        Q_ASSERT(qMin(transform.m11(), transform.m22()) >= 0);
    11001104        offset.rx() *= transform.m11();
     
    11851189}
    11861190
     1191bool 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
    11871201void QDirectFBPaintEnginePrivate::systemStateChanged()
    11881202{
  • trunk/src/plugins/gfxdrivers/directfb/qdirectfbpaintengine.h

    r561 r651  
    11/****************************************************************************
    22**
    3 ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
     3** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
    44** All rights reserved.
    55** Contact: Nokia Corporation (qt-info@nokia.com)
  • trunk/src/plugins/gfxdrivers/directfb/qdirectfbpixmap.cpp

    r561 r651  
    11/****************************************************************************
    22**
    3 ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
     3** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
    44** All rights reserved.
    55** Contact: Nokia Corporation (qt-info@nokia.com)
     
    471471
    472472    QDirectFBPixmapData *data = new QDirectFBPixmapData(screen, QPixmapData::PixmapType);
     473    data->setSerialNumber(++global_ser_no);
    473474    DFBSurfaceBlittingFlags flags = DSBLIT_NOFX;
    474475    data->alpha = alpha;
     
    552553}
    553554
     555
     556bool QDirectFBPixmapData::scroll(int dx, int dy, const QRect &rect)
     557{
     558    if (!dfbSurface) {
     559        return false;
     560    }
     561    unlockSurface();
     562    DFBResult result = dfbSurface->SetBlittingFlags(dfbSurface, DSBLIT_NOFX);
     563    if (result != DFB_OK) {
     564        DirectFBError("QDirectFBPixmapData::scroll", result);
     565        return false;
     566    }
     567    result = dfbSurface->SetPorterDuff(dfbSurface, DSPD_NONE);
     568    if (result != DFB_OK) {
     569        DirectFBError("QDirectFBPixmapData::scroll", result);
     570        return false;
     571    }
     572
     573    const DFBRectangle source = { rect.x(), rect.y(), rect.width(), rect.height() };
     574    result = dfbSurface->Blit(dfbSurface, dfbSurface, &source, source.x + dx, source.y + dy);
     575    if (result != DFB_OK) {
     576        DirectFBError("QDirectFBPixmapData::scroll", result);
     577        return false;
     578    }
     579
     580    return true;
     581}
     582
    554583void QDirectFBPixmapData::invalidate()
    555584{
     
    568597
    569598#endif // QT_NO_QWS_DIRECTFB
    570 
    571 
    572 
  • trunk/src/plugins/gfxdrivers/directfb/qdirectfbpixmap.h

    r561 r651  
    11/****************************************************************************
    22**
    3 ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
     3** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
    44** All rights reserved.
    55** Contact: Nokia Corporation (qt-info@nokia.com)
     
    8282    virtual QPaintEngine *paintEngine() const;
    8383    virtual QImage *buffer();
     84    virtual bool scroll(int dx, int dy, const QRect &rect);
    8485    // Pure virtual in QPixmapData, so re-implement here and delegate to QDirectFBPaintDevice
    8586    virtual int metric(QPaintDevice::PaintDeviceMetric m) const { return QDirectFBPaintDevice::metric(m); }
  • trunk/src/plugins/gfxdrivers/directfb/qdirectfbscreen.cpp

    r561 r651  
    11/****************************************************************************
    22**
    3 ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
     3** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
    44** All rights reserved.
    55** Contact: Nokia Corporation (qt-info@nokia.com)
  • trunk/src/plugins/gfxdrivers/directfb/qdirectfbscreen.h

    r561 r651  
    11/****************************************************************************
    22**
    3 ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
     3** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
    44** All rights reserved.
    55** Contact: Nokia Corporation (qt-info@nokia.com)
     
    6969#if !defined QT_NO_DIRECTFB_IMAGEPROVIDER && !defined QT_DIRECTFB_IMAGEPROVIDER
    7070#define QT_DIRECTFB_IMAGEPROVIDER
     71#endif
     72#if !defined QT_NO_DIRECTFB_STRETCHBLIT && !defined QT_DIRECTFB_STRETCHBLIT
     73#define QT_DIRECTFB_STRETCHBLIT
    7174#endif
    7275#if !defined QT_DIRECTFB_IMAGEPROVIDER_KEEPALIVE && !defined QT_NO_DIRECTFB_IMAGEPROVIDER_KEEPALIVE
  • trunk/src/plugins/gfxdrivers/directfb/qdirectfbscreenplugin.cpp

    r561 r651  
    11/****************************************************************************
    22**
    3 ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
     3** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
    44** All rights reserved.
    55** Contact: Nokia Corporation (qt-info@nokia.com)
  • trunk/src/plugins/gfxdrivers/directfb/qdirectfbwindowsurface.cpp

    r561 r651  
    11/****************************************************************************
    22**
    3 ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
     3** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
    44** All rights reserved.
    55** Contact: Nokia Corporation (qt-info@nokia.com)
     
    379379    }
    380380    screen->flipSurface(dfbSurface, flipFlags, region, offset);
    381     if (noSystemBackground) {
    382         dfbSurface->Clear(dfbSurface, 0, 0, 0, 0);
    383     }
    384381#else
    385382    setOpaque(windowOpacity != 0xff);
  • trunk/src/plugins/gfxdrivers/directfb/qdirectfbwindowsurface.h

    r561 r651  
    11/****************************************************************************
    22**
    3 ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
     3** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
    44** All rights reserved.
    55** Contact: Nokia Corporation (qt-info@nokia.com)
Note: See TracChangeset for help on using the changeset viewer.