aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorYoann Lopes <yoann.lopes@nokia.com>2011-05-10 12:11:24 +0200
committerYoann Lopes <yoann.lopes@nokia.com>2011-05-10 12:12:44 +0200
commitb909a2433e8bc4815d2f382ac23bb92ba1176b97 (patch)
tree04355c6e60215ac9bc831adce09220426cc04ff7 /src
parent21deca53df68504f06d71f7b7ce4a4bfde2da0ef (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.cpp38
-rw-r--r--src/declarative/items/qsgpainteditem.h3
-rw-r--r--src/declarative/items/qsgpainteditem_p.h1
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