Revert "Fix scenegraph backend API for material shaders."

This reverts commit a8a90519cb35481e96fe8889846bfaa424e13e8a. The
same functionality is now available in a more extensible way via
the program binary support recently added.

Change-Id: I07b1939611a76858e65605ce625da6c4cbca2114
Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
Pin qtbase to merge from dev while we integrate glyph cache changes

Change-Id: I4ab46977ec0f137e2bb5a41c67dc09ee962a8b82
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Guarantee event's default state as not accepted

Before starting the evaluation of the event to check if it should be
accepted or not, set the state of the wheelEvent to not accepted. That
way, if the event is not accepted it will be propagated to others
elements.

Change-Id: I13a71db8e26c888adc03f1bfd3e46480d3b22b6f
Task-number: QTBUG-36774
Reviewed-by: Gustavo Pichorim Boiko <gustavo.boiko@canonical.com>
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
Do not add Images with invalid geometry to the scene graph.

Task-number: QTBUG-35656
Task-number: QTBUG-36050

Change-Id: Iea2d5303bdeb9c523e59ebcdc9f97288060be022
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
Update glyph cache type/format logic to match qtbase changes

https://codereview.qt-project.org/#change,77791 unified the glyph format
between QFontEngine and QFontEngineGlyphCache.

Now that we're up to date with qtbase, we can unpin the dependency.

Change-Id: Ibcafccb741ce94b454ff7c469804f44fef7fe06f
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Make SmoothedAnimation and SpringAnimation smoothly transition again.

Fix regression introduced in Qt 5.0 when animation backend was
rewritten.

Task-number: QTBUG-36709
Change-Id: Ib8caa4bc6a38e3bb4c1d1d3961f775fdd2b342c7
Reviewed-by: Martin Jones <martin.jones@jollamobile.com>
Ensure Behavior stops animating when a new value is set while disabled.

Otherwise the Behavior could cause the property value to end up in an
unwanted and inconsistent state. For example, in the following case:

x: myXValue
Behavior on x { NumberAnimation {} }

x could end up *not equal* to myXValue if myXValue was changed while
the Behavior was still animating but currently disabled.

Change-Id: I3826fdc3f48b2722e778638b116546db7e831e87
Reviewed-by: Martin Jones <martin.jones@jollamobile.com>
Optimize QQuickItemParticle::prepareNextFrame().

This moves one hash lookup out of the inner loop, and most importantly
avoids detaching both the particle group hash and the particle data vector
on every iteration of the inner loop.

Change-Id: If9a127b347367ac9dc1e8ee738ff914784adb896
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Reviewed-by: Alan Alpert <aalpert@blackberry.com>
QQuickWidget example

Change-Id: I4211900ef6a04443bde0c95d074a4a29951b43b0
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
Fix ListModel::setProperty() to accept date roles

Task-number: QTBUG-33564
Change-Id: Ifbc1c5014d41b26223c57fafdc616e9b4ddee5b8
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
Add a signal for syncing external animation systems

[ChangeLog] QQuickWindow will now emit the afterAnimating() signal
from the gui thread before each scenegraph sync request.

Change-Id: I4897c82f75066238e781455d4fce4fb6bbe2558e
Reviewed-by: Pasi Keränen <pasi.keranen@digia.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Update QQuickWidget docs and changelog

Change-Id: I853295f31cf9367a8e11157c9ef0764174c614cf
Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
Update QQmlAbstractProfilerAdapter documentation.

Change-Id: I11cce4e3494eb2eb06fa781a676cccf5eb2127a8
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Fix item polishing

After "Dont call updatePolish if an item is not visible" (439f31f) and
"Fix polishItems bug" (01e609e), desktop style animations for QtQuick
Controls were no longer running. This was because QQuickItem::polish()
no longer polished a _visible_ item when there were other _hidden_
items in the queue to be polished.

This change restores the old logic that QQuickWindow only keeps track
of visible items to be polished, whilst the idea of hidden items not
being polished still remains valid. QQuickItem is made responsible
for polishing itself if necessary when it becomes visible.

Task-number: QTBUG-36934
Change-Id: I4d48d3a3e2c841d337cd52ec4fd27092f84a8626
Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
Prevent dangling pointer in QQuickShaderEffectSource.

Task-number: QTBUG-36931
Change-Id: Idb584a8703a8d93d2cbcd3feb7942476dc165a59
Reviewed-by: Mitch Curtis <mitch.curtis@digia.com>
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Make sure we update filtering options on atlas textures.

We had had an optimization which tried to reduce state changes,
but filtering is also changed in QSGTexture::updateBindOptions
which Atlas::bind() didn't know anything about. Solution: don't
try to be so clever.

Task-number: QTBUG-35457
Change-Id: I39ac0106396921e1b652db2b2aa5a9923b35e825
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
Don't use Vertexarrays

If custom Glcode is used and a buffer is not unbound
the drawcall will take the bound buffer over the
vertex array, so its a bad idea to use them, besides
the fact that in core profile buffers should be used.

Change-Id: I4107d85b664a0c67207652ae34c2569572fa6a8b
Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
Avoid extra platformwindows with QQuickWidget

QQuickWidget is nice but does not work on platforms like eglfs
because it always creates a (hidden) platform window for the
QQuickWindow.

This is now fixed by avoiding calling create() on the window and
using the toplevel window of the QQuickWidget instead.

Change-Id: Ia552f7a16d8b913fb798fde04b9304c6d037a46c
Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
Fix missing depth and stencil buffer in QQuickWidget

Change-Id: I34f2015d63d3052b401a82bb4ac7340af94dca8c
Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
Add an error signal to QQuickWindow

When nothing is connected to this signal, an error will be printed or,
in case of Windows, a message box will be shown. If there is something
connected, it is up to the application to handle the error.

[ChangeLog] Added a new sceneGraphError() signal to QQuickWindow
which applications can use to detect errors like OpenGL context creation
failures and react in their own custom ways.

Task-number: QTBUG-36138
Change-Id: I33b1e5e0e3f25872af67c5bb5ae937e3470b25f3
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>