Added a separate property to enable mipmapping on QSGPaintedItem.
authorYoann Lopes <yoann.lopes@nokia.com>
Tue, 10 May 2011 10:11:24 +0000 (12:11 +0200)
committerYoann Lopes <yoann.lopes@nokia.com>
Tue, 10 May 2011 10:12:44 +0000 (12:12 +0200)
Don't use QSGItem's smooth property for that anymore.

src/declarative/items/qsgpainteditem.cpp
src/declarative/items/qsgpainteditem.h
src/declarative/items/qsgpainteditem_p.h

index 89cbc5e..6bcc607 100644 (file)
@@ -103,6 +103,8 @@ QSGPaintedItemPrivate::QSGPaintedItemPrivate()
     , geometryDirty(false)
     , contentsDirty(false)
     , opaquePainting(false)
+    , antialiasing(false)
+    , mipmap(false)
 {
 }
 
@@ -226,6 +228,40 @@ void QSGPaintedItem::setAntialiasing(bool enable)
 }
 
 /*!
+    Returns true if mipmaps are enabled; otherwise, false is returned.
+
+    By default, mipmapping is not enabled.
+
+    \sa setMipmap()
+*/
+bool QSGPaintedItem::mipmap() const
+{
+    Q_D(const QSGPaintedItem);
+    return d->mipmap;
+}
+
+/*!
+    If \a enable is true, mipmapping is enabled on the associated texture.
+
+    Mipmapping increases rendering speed and reduces aliasing artifacts when the item is
+    scaled down.
+
+    By default, mipmapping is not enabled.
+
+    \sa mipmap()
+*/
+void QSGPaintedItem::setMipmap(bool enable)
+{
+    Q_D(QSGPaintedItem);
+
+    if (d->mipmap == enable)
+        return;
+
+    d->mipmap = enable;
+    update();
+}
+
+/*!
     This function returns the outer bounds of the item as a rectangle; all painting must be
     restricted to inside an item's bounding rect.
 
@@ -416,7 +452,7 @@ QSGNode *QSGPaintedItem::updatePaintNode(QSGNode *oldNode, UpdatePaintNodeData *
     node->setSize(QSize(qRound(br.width()), qRound(br.height())));
     node->setSmoothPainting(d->antialiasing);
     node->setLinearFiltering(d->smooth);
-    node->setMipmapping(d->smooth);
+    node->setMipmapping(d->mipmap);
     node->setOpaquePainting(d->opaquePainting);
     node->setFillColor(d->fillColor);
     node->setContentsScale(d->contentsScale);
index 2c0884d..a2d3a09 100644 (file)
@@ -75,6 +75,9 @@ public:
     bool antialiasing() const;
     void setAntialiasing(bool enable);
 
+    bool mipmap() const;
+    void setMipmap(bool enable);
+
     QRectF contentsBoundingRect() const;
 
     QSize contentsSize() const;
index ac3e09e..9a170d0 100644 (file)
@@ -63,6 +63,7 @@ public:
     bool contentsDirty : 1;
     bool opaquePainting: 1;
     bool antialiasing: 1;
+    bool mipmap: 1;
 };
 
 QT_END_NAMESPACE