From 1c9a28ea64cc53e61a64644dc5a4ff121b475bc5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B8rn=20Erik=20Nilsen?= Date: Wed, 19 Aug 2009 15:30:32 +0200 Subject: Remove QGraphicsBloomEffect and QGraphicsFrameEffect. These belong to the examples directory as discussed with Andreas. --- src/gui/effects/qgraphicseffect.cpp | 180 ------------------------------------ src/gui/effects/qgraphicseffect.h | 47 ---------- src/gui/effects/qgraphicseffect_p.h | 21 ----- 3 files changed, 248 deletions(-) diff --git a/src/gui/effects/qgraphicseffect.cpp b/src/gui/effects/qgraphicseffect.cpp index b04af7a..c1f8f06 100644 --- a/src/gui/effects/qgraphicseffect.cpp +++ b/src/gui/effects/qgraphicseffect.cpp @@ -63,8 +63,6 @@ \o QGraphicsColorizeEffect - renders the item in shades of any given color \o QGraphicsPixelizeEffect - pixelizes the item with any pixel size \o QGraphicsBlurEffect - blurs the item by a given radius - \o QGraphicsBloomEffect - applies a blooming / glowing effect - \o QGraphicsFrameEffect - adds a frame to the item \o QGraphicsShadowEffect - renders a dropshadow behind the item \endlist @@ -580,184 +578,6 @@ void QGraphicsBlurEffect::draw(QPainter *painter, QGraphicsEffectSource *source) painter->setWorldTransform(restoreTransform); } -QGraphicsBloomEffect::QGraphicsBloomEffect() - : QGraphicsEffect(*new QGraphicsBloomEffectPrivate) -{ -} - -QGraphicsBloomEffect::~QGraphicsBloomEffect() -{ -} - -int QGraphicsBloomEffect::blurRadius() const -{ - Q_D(const QGraphicsBloomEffect); - return d->blurRadius; -} - -void QGraphicsBloomEffect::setBlurRadius(int radius) -{ - Q_D(QGraphicsBloomEffect); - d->blurRadius = radius; - updateBoundingRect(); -} - -qreal QGraphicsBloomEffect::opacity() const -{ - Q_D(const QGraphicsBloomEffect); - return d->opacity; -} - -void QGraphicsBloomEffect::setOpacity(qreal alpha) -{ - Q_D(QGraphicsBloomEffect); - d->opacity = alpha; -} - -QRectF QGraphicsBloomEffect::boundingRectFor(const QRectF &rect) const -{ - Q_D(const QGraphicsBloomEffect); - const qreal delta = d->blurRadius * 3; - return rect.adjusted(-delta, -delta, delta, delta); -} - -// Change brightness (positive integer) of each pixel -static QImage brightened(const QImage& image, int brightness) -{ - int tab[ 256 ]; - for (int i = 0; i < 256; ++i) - tab[i] = qMin(i + brightness, 255); - - QImage img = image.convertToFormat(QImage::Format_ARGB32); - for (int y = 0; y < img.height(); y++) { - QRgb* line = (QRgb*)(img.scanLine(y)); - for (int x = 0; x < img.width(); x++) { - QRgb c = line[x]; - line[x] = qRgba(tab[qRed(c)], tab[qGreen(c)], tab[qBlue(c)], qAlpha(c)); - } - } - - return img; -} - -// Composite two QImages using given composition mode and opacity -static QImage composited(const QImage& img1, const QImage& img2, qreal opacity, QPainter::CompositionMode mode) -{ - QImage result = img1.convertToFormat(QImage::Format_ARGB32_Premultiplied); - QPainter painter(&result); - painter.setCompositionMode(mode); - painter.setOpacity(opacity); - painter.drawImage(0, 0, img2); - painter.end(); - return result; -} - -void QGraphicsBloomEffect::draw(QPainter *painter, QGraphicsEffectSource *source) -{ - Q_D(QGraphicsBloomEffect); - if (d->blurRadius <= 0) { - source->draw(painter); - return; - } - - QPoint offset; - const int radius = d->blurRadius; - - if (source->isPixmap()) { - // No point in drawing in device coordinates (pixmap will be scaled anyways). - const QPixmap pixmap = source->pixmap(Qt::LogicalCoordinates, &offset); - - // bloom routine - QImage img = pixmap.toImage().convertToFormat(QImage::Format_ARGB32_Premultiplied); - QImage overlay = blurred(img, img.rect(), radius); - overlay = brightened(overlay, 70); - img = composited(img, overlay, d->opacity, QPainter::CompositionMode_Overlay); - - painter->drawImage(offset, img); - return; - } - - // Draw pixmap in device coordinates to avoid pixmap scaling. - const QPixmap pixmap = source->pixmap(Qt::DeviceCoordinates, &offset); - - // bloom routine - QImage img = pixmap.toImage().convertToFormat(QImage::Format_ARGB32_Premultiplied); - QImage overlay = blurred(img, img.rect(), radius); - overlay = brightened(overlay, 70); - img = composited(img, overlay, d->opacity, QPainter::CompositionMode_Overlay); - - // Draw using an untransformed painter. - QTransform restoreTransform = painter->worldTransform(); - painter->setWorldTransform(QTransform()); - painter->drawImage(offset, img); - painter->setWorldTransform(restoreTransform); -} - -QGraphicsFrameEffect::QGraphicsFrameEffect() - : QGraphicsEffect(*new QGraphicsFrameEffectPrivate) -{ -} - -QGraphicsFrameEffect::~QGraphicsFrameEffect() -{ -} - -QColor QGraphicsFrameEffect::frameColor() const -{ - Q_D(const QGraphicsFrameEffect); - return d->color; -} - -void QGraphicsFrameEffect::setFrameColor(const QColor &c) -{ - Q_D(QGraphicsFrameEffect); - d->color = c; -} - -qreal QGraphicsFrameEffect::frameWidth() const -{ - Q_D(const QGraphicsFrameEffect); - return d->width; -} - -void QGraphicsFrameEffect::setFrameWidth(qreal frameWidth) -{ - Q_D(QGraphicsFrameEffect); - d->width = frameWidth; - updateBoundingRect(); -} - -qreal QGraphicsFrameEffect::frameOpacity() const -{ - Q_D(const QGraphicsFrameEffect); - return d->alpha; -} - -void QGraphicsFrameEffect::setFrameOpacity(qreal opacity) -{ - Q_D(QGraphicsFrameEffect); - d->alpha = opacity; -} - -QRectF QGraphicsFrameEffect::boundingRectFor(const QRectF &rect) const -{ - Q_D(const QGraphicsFrameEffect); - return rect.adjusted(-d->width, -d->width, d->width, d->width); -} - -void QGraphicsFrameEffect::draw(QPainter *painter, QGraphicsEffectSource *source) -{ - Q_D(QGraphicsFrameEffect); - painter->save(); - painter->setOpacity(painter->opacity() * d->alpha); - painter->setPen(Qt::NoPen); - painter->setBrush(d->color); - painter->drawRoundedRect(boundingRect(), 20, 20, Qt::RelativeSize); - painter->restore(); - - source->draw(painter); -} - QGraphicsShadowEffect::QGraphicsShadowEffect() : QGraphicsEffect(*new QGraphicsShadowEffectPrivate) { diff --git a/src/gui/effects/qgraphicseffect.h b/src/gui/effects/qgraphicseffect.h index d171b1b..19399d3 100644 --- a/src/gui/effects/qgraphicseffect.h +++ b/src/gui/effects/qgraphicseffect.h @@ -205,53 +205,6 @@ private: Q_DISABLE_COPY(QGraphicsBlurEffect) }; -class QGraphicsBloomEffectPrivate; -class Q_GUI_EXPORT QGraphicsBloomEffect: public QGraphicsEffect { - Q_OBJECT -public: - QGraphicsBloomEffect(); - ~QGraphicsBloomEffect(); - - int blurRadius() const; - void setBlurRadius(int blurRadius); - - qreal opacity() const; - void setOpacity(qreal opacity); - -protected: - QRectF boundingRectFor(const QRectF &rect) const; - void draw(QPainter *painter, QGraphicsEffectSource *source); - -private: - Q_DECLARE_PRIVATE(QGraphicsBloomEffect) - Q_DISABLE_COPY(QGraphicsBloomEffect) -}; - -class QGraphicsFrameEffectPrivate; -class Q_GUI_EXPORT QGraphicsFrameEffect: public QGraphicsEffect { - Q_OBJECT -public: - QGraphicsFrameEffect(); - ~QGraphicsFrameEffect(); - - QColor frameColor() const; - void setFrameColor(const QColor &c); - - qreal frameWidth() const; - void setFrameWidth(qreal frameWidth); - - qreal frameOpacity() const; - void setFrameOpacity(qreal opacity); - -protected: - QRectF boundingRectFor(const QRectF &rect) const; - void draw(QPainter *painter, QGraphicsEffectSource *source); - -private: - Q_DECLARE_PRIVATE(QGraphicsFrameEffect) - Q_DISABLE_COPY(QGraphicsFrameEffect) -}; - class QGraphicsShadowEffectPrivate; class Q_GUI_EXPORT QGraphicsShadowEffect: public QGraphicsEffect { Q_OBJECT diff --git a/src/gui/effects/qgraphicseffect_p.h b/src/gui/effects/qgraphicseffect_p.h index 6d546cc..a92e7ae 100644 --- a/src/gui/effects/qgraphicseffect_p.h +++ b/src/gui/effects/qgraphicseffect_p.h @@ -156,27 +156,6 @@ public: int blurRadius; }; -class QGraphicsBloomEffectPrivate : public QGraphicsEffectPrivate -{ - Q_DECLARE_PUBLIC(QGraphicsBlurEffect) -public: - QGraphicsBloomEffectPrivate() : blurRadius(6), opacity(0.7) {} - - int blurRadius; - qreal opacity; -}; - -class QGraphicsFrameEffectPrivate : public QGraphicsEffectPrivate -{ - Q_DECLARE_PUBLIC(QGraphicsFrameEffect) -public: - QGraphicsFrameEffectPrivate() : color(Qt::blue), width(5), alpha(0.6) {} - - QColor color; - qreal width; - qreal alpha; -}; - class QGraphicsShadowEffectPrivate : public QGraphicsEffectPrivate { Q_DECLARE_PUBLIC(QGraphicsShadowEffect) -- cgit v0.12