diff options
author | Yoann Lopes <yoann.lopes@nokia.com> | 2011-05-10 12:11:24 +0200 |
---|---|---|
committer | Yoann Lopes <yoann.lopes@nokia.com> | 2011-05-10 12:12:44 +0200 |
commit | b909a2433e8bc4815d2f382ac23bb92ba1176b97 (patch) | |
tree | 04355c6e60215ac9bc831adce09220426cc04ff7 /src | |
parent | 21deca53df68504f06d71f7b7ce4a4bfde2da0ef (diff) |
Added a separate property to enable mipmapping on QSGPaintedItem.
Don't use QSGItem's smooth property for that anymore.
Diffstat (limited to 'src')
-rw-r--r-- | src/declarative/items/qsgpainteditem.cpp | 38 | ||||
-rw-r--r-- | src/declarative/items/qsgpainteditem.h | 3 | ||||
-rw-r--r-- | src/declarative/items/qsgpainteditem_p.h | 1 |
3 files changed, 41 insertions, 1 deletions
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) { } @@ -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); 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 |