diff options
Diffstat (limited to 'src/quick/items')
-rw-r--r-- | src/quick/items/context2d/qquickcontext2d.cpp | 8 | ||||
-rw-r--r-- | src/quick/items/qquickanimatedsprite.cpp | 4 | ||||
-rw-r--r-- | src/quick/items/qquickborderimage.cpp | 8 | ||||
-rw-r--r-- | src/quick/items/qquickflickable.cpp | 13 | ||||
-rw-r--r-- | src/quick/items/qquickimage.cpp | 1 | ||||
-rw-r--r-- | src/quick/items/qquickitem.cpp | 52 | ||||
-rw-r--r-- | src/quick/items/qquickitem_p.h | 6 | ||||
-rw-r--r-- | src/quick/items/qquickpathview.cpp | 8 | ||||
-rw-r--r-- | src/quick/items/qquickpositioners.cpp | 2 | ||||
-rw-r--r-- | src/quick/items/qquickspritesequence.cpp | 4 |
10 files changed, 28 insertions, 78 deletions
diff --git a/src/quick/items/context2d/qquickcontext2d.cpp b/src/quick/items/context2d/qquickcontext2d.cpp index 6f7cd77486..2fb6cb9f63 100644 --- a/src/quick/items/context2d/qquickcontext2d.cpp +++ b/src/quick/items/context2d/qquickcontext2d.cpp @@ -545,6 +545,9 @@ public: QQuickJSContext2DPrototype(QV4::ExecutionEngine *engine) : QV4::Object(engine) { + QV4::Scope scope(engine); + QV4::ScopedObject protectThis(scope, this); + defineDefaultProperty(QStringLiteral("quadraticCurveTo"), method_quadraticCurveTo, 0); defineDefaultProperty(QStringLiteral("restore"), method_restore, 0); defineDefaultProperty(QStringLiteral("moveTo"), method_moveTo, 0); @@ -868,6 +871,7 @@ struct QQuickJSContext2DPixelData : public QV4::Object : QV4::Object(engine) { vtbl = &static_vtbl; + flags &= ~SimpleArray; } static void destroy(QV4::Managed *that) { @@ -890,6 +894,10 @@ struct QQuickJSContext2DImageData : public QV4::Object : QV4::Object(engine) { vtbl = &static_vtbl; + pixelData = QV4::Primitive::undefinedValue(); + + QV4::Scope scope(engine); + QV4::ScopedObject protectThis(scope, this); defineAccessorProperty(QStringLiteral("width"), method_get_width, 0); defineAccessorProperty(QStringLiteral("height"), method_get_height, 0); diff --git a/src/quick/items/qquickanimatedsprite.cpp b/src/quick/items/qquickanimatedsprite.cpp index 3a32169447..846de15581 100644 --- a/src/quick/items/qquickanimatedsprite.cpp +++ b/src/quick/items/qquickanimatedsprite.cpp @@ -80,14 +80,14 @@ static const char vertexShaderCode[] = "}\n"; static const char fragmentShaderCode[] = - "uniform sampler2D texture;\n" + "uniform sampler2D _qt_texture;\n" "uniform lowp float qt_Opacity;\n" "\n" "varying highp vec4 fTexS;\n" "varying lowp float progress;\n" "\n" "void main() {\n" - " gl_FragColor = mix(texture2D(texture, fTexS.xy), texture2D(texture, fTexS.zw), progress) * qt_Opacity;\n" + " gl_FragColor = mix(texture2D(_qt_texture, fTexS.xy), texture2D(_qt_texture, fTexS.zw), progress) * qt_Opacity;\n" "}\n"; class QQuickAnimatedSpriteMaterial : public QSGMaterial diff --git a/src/quick/items/qquickborderimage.cpp b/src/quick/items/qquickborderimage.cpp index 3cbcf1937f..9fc9752707 100644 --- a/src/quick/items/qquickborderimage.cpp +++ b/src/quick/items/qquickborderimage.cpp @@ -560,10 +560,14 @@ QSGNode *QQuickBorderImage::updatePaintNode(QSGNode *oldNode, UpdatePaintNodeDat QSGImageNode *node = static_cast<QSGImageNode *>(oldNode); - if (!node) + bool updatePixmap = d->pixmapChanged; + if (!node) { node = d->sceneGraphContext()->createImageNode(); + updatePixmap = true; + } - node->setTexture(texture); + if (updatePixmap) + node->setTexture(texture); // Don't implicitly create the scalegrid in the rendering thread... QRectF innerSourceRect(0, 0, 1, 1); diff --git a/src/quick/items/qquickflickable.cpp b/src/quick/items/qquickflickable.cpp index b94d8dd4b0..f0a68b184a 100644 --- a/src/quick/items/qquickflickable.cpp +++ b/src/quick/items/qquickflickable.cpp @@ -948,16 +948,15 @@ void QQuickFlickable::setPixelAligned(bool align) qint64 QQuickFlickablePrivate::computeCurrentTime(QInputEvent *event) { - if (0 != event->timestamp() && QQuickItemPrivate::consistentTime == -1) + if (0 != event->timestamp()) return event->timestamp(); - - return QQuickItemPrivate::elapsed(timer); + return timer.elapsed(); } void QQuickFlickablePrivate::handleMousePressEvent(QMouseEvent *event) { Q_Q(QQuickFlickable); - QQuickItemPrivate::start(timer); + timer.start(); if (interactive && timeline.isActive() && ((qAbs(hData.smoothVelocity.value()) > RetainGrabVelocity && !hData.fixingUp && !hData.inOvershoot) || (qAbs(vData.smoothVelocity.value()) > RetainGrabVelocity && !vData.fixingUp && !vData.inOvershoot))) { @@ -1016,8 +1015,8 @@ void QQuickFlickablePrivate::handleMousePressEvent(QMouseEvent *event) if (wasFlicking) emit q->flickingChanged(); lastPosTime = lastPressTime = computeCurrentTime(event); - QQuickItemPrivate::start(vData.velocityTime); - QQuickItemPrivate::start(hData.velocityTime); + vData.velocityTime.start(); + hData.velocityTime.start(); } void QQuickFlickablePrivate::handleMouseMoveEvent(QMouseEvent *event) @@ -1466,7 +1465,7 @@ void QQuickFlickablePrivate::viewportAxisMoved(AxisData &data, qreal minExtent, QQuickTimeLineCallback::Callback fixupCallback) { if (pressed || calcVelocity) { - int elapsed = QQuickItemPrivate::restart(data.velocityTime); + int elapsed = data.velocityTime.restart(); if (elapsed > 0) { qreal velocity = (data.lastPos - data.move.value()) * 1000 / elapsed; if (qAbs(velocity) > 0) { diff --git a/src/quick/items/qquickimage.cpp b/src/quick/items/qquickimage.cpp index 3a8fd99a66..d6be13f3c0 100644 --- a/src/quick/items/qquickimage.cpp +++ b/src/quick/items/qquickimage.cpp @@ -666,7 +666,6 @@ QSGNode *QQuickImage::updatePaintNode(QSGNode *oldNode, UpdatePaintNodeData *) if (d->pixmapChanged) { // force update the texture in the node to trigger reconstruction of // geometry and the likes when a atlas segment has changed. - node->setTexture(0); if (texture->isAtlasTexture() && (hWrap == QSGTexture::Repeat || vWrap == QSGTexture::Repeat)) node->setTexture(texture->removedFromAtlas()); else diff --git a/src/quick/items/qquickitem.cpp b/src/quick/items/qquickitem.cpp index 73bca67a1e..c3b221b2c8 100644 --- a/src/quick/items/qquickitem.cpp +++ b/src/quick/items/qquickitem.cpp @@ -7030,58 +7030,6 @@ QDebug operator<<(QDebug debug, QQuickItem *item) } #endif -qint64 QQuickItemPrivate::consistentTime = -1; -void QQuickItemPrivate::setConsistentTime(qint64 t) -{ - consistentTime = t; -} - -class QElapsedTimerConsistentTimeHack -{ -public: - void start() { - t1 = QQuickItemPrivate::consistentTime; - t2 = 0; - } - qint64 elapsed() { - return QQuickItemPrivate::consistentTime - t1; - } - qint64 restart() { - qint64 val = QQuickItemPrivate::consistentTime - t1; - t1 = QQuickItemPrivate::consistentTime; - t2 = 0; - return val; - } - -private: - qint64 t1; - qint64 t2; -}; - -void QQuickItemPrivate::start(QElapsedTimer &t) -{ - if (QQuickItemPrivate::consistentTime == -1) - t.start(); - else - ((QElapsedTimerConsistentTimeHack*)&t)->start(); -} - -qint64 QQuickItemPrivate::elapsed(QElapsedTimer &t) -{ - if (QQuickItemPrivate::consistentTime == -1) - return t.elapsed(); - else - return ((QElapsedTimerConsistentTimeHack*)&t)->elapsed(); -} - -qint64 QQuickItemPrivate::restart(QElapsedTimer &t) -{ - if (QQuickItemPrivate::consistentTime == -1) - return t.restart(); - else - return ((QElapsedTimerConsistentTimeHack*)&t)->restart(); -} - /*! \fn bool QQuickItem::isTextureProvider() const diff --git a/src/quick/items/qquickitem_p.h b/src/quick/items/qquickitem_p.h index b1e63e6535..f731acabbb 100644 --- a/src/quick/items/qquickitem_p.h +++ b/src/quick/items/qquickitem_p.h @@ -587,12 +587,6 @@ public: virtual void mirrorChange() {} - static qint64 consistentTime; - static void setConsistentTime(qint64 t); - static void start(QElapsedTimer &); - static qint64 elapsed(QElapsedTimer &); - static qint64 restart(QElapsedTimer &); - void incrementCursorCount(int delta); }; diff --git a/src/quick/items/qquickpathview.cpp b/src/quick/items/qquickpathview.cpp index ff31d9de4e..d8132bdd12 100644 --- a/src/quick/items/qquickpathview.cpp +++ b/src/quick/items/qquickpathview.cpp @@ -1568,11 +1568,9 @@ qreal QQuickPathViewPrivate::calcVelocity() const qint64 QQuickPathViewPrivate::computeCurrentTime(QInputEvent *event) { - if (0 != event->timestamp() && QQuickItemPrivate::consistentTime == -1) { + if (0 != event->timestamp()) return event->timestamp(); - } - - return QQuickItemPrivate::elapsed(timer); + return timer.elapsed(); } void QQuickPathView::mousePressEvent(QMouseEvent *event) @@ -1613,7 +1611,7 @@ void QQuickPathViewPrivate::handleMousePressEvent(QMouseEvent *event) else stealMouse = false; - QQuickItemPrivate::start(timer); + timer.start(); lastPosTime = computeCurrentTime(event); tl.clear(); } diff --git a/src/quick/items/qquickpositioners.cpp b/src/quick/items/qquickpositioners.cpp index fc2b9772d7..c72c2276e0 100644 --- a/src/quick/items/qquickpositioners.cpp +++ b/src/quick/items/qquickpositioners.cpp @@ -1288,7 +1288,7 @@ Qt::LayoutDirection QQuickGrid::effectiveLayoutDirection() const } /*! - \qmlproperty enumeration QtQuick::Grid::horizontalItmeAlignment + \qmlproperty enumeration QtQuick::Grid::horizontalItemAlignment \qmlproperty enumeration QtQuick::Grid::verticalItemAlignment \qmlproperty enumeration QtQuick::Grid::effectiveHorizontalItemAlignment diff --git a/src/quick/items/qquickspritesequence.cpp b/src/quick/items/qquickspritesequence.cpp index 3b2b3269e2..3c1492e0b3 100644 --- a/src/quick/items/qquickspritesequence.cpp +++ b/src/quick/items/qquickspritesequence.cpp @@ -79,14 +79,14 @@ static const char vertexShaderCode[] = "}\n"; static const char fragmentShaderCode[] = - "uniform sampler2D texture;\n" + "uniform sampler2D _qt_texture;\n" "uniform lowp float qt_Opacity;\n" "\n" "varying highp vec4 fTexS;\n" "varying lowp float progress;\n" "\n" "void main() {\n" - " gl_FragColor = mix(texture2D(texture, fTexS.xy), texture2D(texture, fTexS.zw), progress) * qt_Opacity;\n" + " gl_FragColor = mix(texture2D(_qt_texture, fTexS.xy), texture2D(_qt_texture, fTexS.zw), progress) * qt_Opacity;\n" "}\n"; class QQuickSpriteSequenceMaterial : public QSGMaterial |