From fcf88c88c1d730028e0fbc46cadce040d6fb7e02 Mon Sep 17 00:00:00 2001 From: Michael Brasser Date: Wed, 24 Jun 2009 10:24:19 +1000 Subject: Fix issue with render hints not being restored properly. --- src/declarative/fx/qfximage.cpp | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/declarative/fx/qfximage.cpp b/src/declarative/fx/qfximage.cpp index 40389c4..58d597a 100644 --- a/src/declarative/fx/qfximage.cpp +++ b/src/declarative/fx/qfximage.cpp @@ -336,7 +336,8 @@ void QFxImage::paintContents(QPainter &p) if (d->pix.isNull()) return; - QPainter::RenderHints oldHints = p.renderHints(); + bool oldAA = p.testRenderHint(QPainter::Antialiasing); + bool oldSmooth = p.testRenderHint(QPainter::SmoothPixmapTransform); if (d->smooth) p.setRenderHints(QPainter::Antialiasing | QPainter::SmoothPixmapTransform, d->smooth); @@ -428,8 +429,10 @@ void QFxImage::paintContents(QPainter &p) QRect(pix.width()-sgr, pix.height() - sgb, sgr, sgb)); } - if (d->smooth) - p.setRenderHints(oldHints); + if (d->smooth) { + p.setRenderHint(QPainter::Antialiasing, oldAA); + p.setRenderHint(QPainter::SmoothPixmapTransform, oldSmooth); + } } #elif defined(QFX_RENDER_OPENGL) uint QFxImage::glSimpleItemData(float *vertices, float *texVertices, -- cgit v0.12 From 124f5714e8e6ec1945d536e622b51304f2b32dd7 Mon Sep 17 00:00:00 2001 From: Michael Brasser Date: Wed, 24 Jun 2009 11:07:26 +1000 Subject: Fix performance regression. --- src/declarative/qml/qmlbasicscript.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/declarative/qml/qmlbasicscript.cpp b/src/declarative/qml/qmlbasicscript.cpp index a679532..f02a176 100644 --- a/src/declarative/qml/qmlbasicscript.cpp +++ b/src/declarative/qml/qmlbasicscript.cpp @@ -830,7 +830,8 @@ QVariant QmlBasicScript::run(QmlContext *context, void *voidCache, CacheState *c if (n.type == QmlBasicScriptNodeCache::Invalid || state == Reset) { context->engine()->d_func()->loadCache(n, QLatin1String(id), static_cast(context->d_ptr)); - state = Incremental; + if (state != Reset) + state = Incremental; } if(!n.isValid()) @@ -855,7 +856,8 @@ QVariant QmlBasicScript::run(QmlContext *context, void *voidCache, CacheState *c } else if (n.type == QmlBasicScriptNodeCache::Invalid || state == Reset) { context->engine()->d_func()->fetchCache(n, QLatin1String(id), obj); guard(n); - state = Incremental; + if (state != Reset) + state = Incremental; } else if (!valid(n, obj)) { clearCache(dataCache); *cached = Reset; -- cgit v0.12