aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorFrederik Gladhorn <frederik.gladhorn@digia.com>2014-08-14 11:35:11 +0200
committerFrederik Gladhorn <frederik.gladhorn@digia.com>2014-08-14 11:35:30 +0200
commit809b5e2fc1cc5935c2dd7d63992c7a94dfce4dd8 (patch)
treec0f08d106a16f12a89e13550d58d424d0f9cba6a /src
parentdc4e537d4cfe16aaa88b6edd911571317241ab32 (diff)
parentda7df10b3d5769d1da7851895d27257a0d930012 (diff)
Merge remote-tracking branch 'origin/5.3' into 5.4
Diffstat (limited to 'src')
-rw-r--r--src/qml/jit/qv4assembler_p.h5
-rw-r--r--src/quick/items/context2d/qquickcontext2d.cpp12
2 files changed, 13 insertions, 4 deletions
diff --git a/src/qml/jit/qv4assembler_p.h b/src/qml/jit/qv4assembler_p.h
index 32f709c5d2..5e868c3b11 100644
--- a/src/qml/jit/qv4assembler_p.h
+++ b/src/qml/jit/qv4assembler_p.h
@@ -225,11 +225,10 @@ public:
return frameSize;
}
+ /// \return the stack frame size in number of Value items.
int calculateJSStackFrameSize() const
{
- const int locals = (localCount + sizeof(QV4::CallData)/sizeof(QV4::Value) - 1 + maxOutgoingArgumentCount) + 1;
- int frameSize = locals * sizeof(QV4::Value);
- return frameSize;
+ return (localCount + sizeof(QV4::CallData)/sizeof(QV4::Value) - 1 + maxOutgoingArgumentCount) + 1;
}
Address stackSlotPointer(int idx) const
diff --git a/src/quick/items/context2d/qquickcontext2d.cpp b/src/quick/items/context2d/qquickcontext2d.cpp
index 1a0d6287aa..a3644c313b 100644
--- a/src/quick/items/context2d/qquickcontext2d.cpp
+++ b/src/quick/items/context2d/qquickcontext2d.cpp
@@ -70,6 +70,9 @@
#include <private/qv4objectproto_p.h>
#include <private/qv4scopedvalue_p.h>
+#include <private/qguiapplication_p.h>
+#include <qpa/qplatformintegration.h>
+
#include <QtCore/QRunnable>
#if defined(Q_OS_QNX) || defined(Q_OS_ANDROID)
@@ -2119,7 +2122,7 @@ QV4::ReturnedValue QQuickJSContext2DPrototype::method_fillRect(QV4::CallContext
}
/*!
- \qmlmethod object QtQuick::Context2D::fillRect(real x, real y, real w, real h)
+ \qmlmethod object QtQuick::Context2D::strokeRect(real x, real y, real w, real h)
Stroke the specified rectangle's path using the strokeStyle, lineWidth, lineJoin,
and (if appropriate) miterLimit attributes.
@@ -4109,6 +4112,13 @@ void QQuickContext2D::init(QQuickCanvasItem *canvasItem, const QVariantMap &args
}
#endif
+ // Disable threaded background rendering if the platform has issues with it
+ if (m_renderTarget == QQuickCanvasItem::FramebufferObject
+ && m_renderStrategy == QQuickCanvasItem::Threaded
+ && !QGuiApplicationPrivate::platformIntegration()->hasCapability(QPlatformIntegration::ThreadedOpenGL)) {
+ m_renderTarget = QQuickCanvasItem::Image;
+ }
+
switch (m_renderTarget) {
case QQuickCanvasItem::Image:
m_texture = new QQuickContext2DImageTexture;