diff --git a/src/declarative/items/qsgpainteditem.cpp b/src/declarative/items/qsgpainteditem.cpp index 89cbc5e980..6bcc60700a 100644 --- a/src/declarative/items/qsgpainteditem.cpp +++ b/src/declarative/items/qsgpainteditem.cpp @@ -103,6 +103,8 @@ QSGPaintedItemPrivate::QSGPaintedItemPrivate() , geometryDirty(false) , contentsDirty(false) , opaquePainting(false) + , antialiasing(false) + , mipmap(false) { } @@ -225,6 +227,40 @@ void QSGPaintedItem::setAntialiasing(bool enable) update(); } +/*! + 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); diff --git a/src/declarative/items/qsgpainteditem.h b/src/declarative/items/qsgpainteditem.h index 2c0884d146..a2d3a09e76 100644 --- a/src/declarative/items/qsgpainteditem.h +++ b/src/declarative/items/qsgpainteditem.h @@ -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; diff --git a/src/declarative/items/qsgpainteditem_p.h b/src/declarative/items/qsgpainteditem_p.h index ac3e09e73b..9a170d0167 100644 --- a/src/declarative/items/qsgpainteditem_p.h +++ b/src/declarative/items/qsgpainteditem_p.h @@ -63,6 +63,7 @@ public: bool contentsDirty : 1; bool opaquePainting: 1; bool antialiasing: 1; + bool mipmap: 1; }; QT_END_NAMESPACE