summaryrefslogtreecommitdiffstats
path: root/src/gui/effects/qgraphicseffect.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/gui/effects/qgraphicseffect.cpp')
-rw-r--r--src/gui/effects/qgraphicseffect.cpp180
1 files changed, 0 insertions, 180 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)
{