- 12 Dec, 2013 - 1 commit
-
-
Gunnar Sletta authored
If another GL context is bound to another surface on the GUI thread, we can run into issues while cleaning up the SG nodes. Task-number: QTBUG-34898 Change-Id: Ifa02b7cdbc7ab38b3a149a21452cc5071498a7d1 Reviewed-by:
Laszlo Agocs <laszlo.agocs@digia.com>
-
- 03 Dec, 2013 - 1 commit
-
-
Gunnar Sletta authored
Task-number: QTBUG-33363 (cherry-picked from commit 12eab916 ) Change-Id: Ia2b0c329157786cb4ec703989f12d2fdb1ce6bc8 Reviewed-by:
Laszlo Agocs <laszlo.agocs@digia.com>
-
- 27 Nov, 2013 - 1 commit
-
-
Robin Burchell authored
Add an exhaust delay to QSGGuiThreadRenderLoop. Some updates may be done with posted events, and maybeUpdate event competed with those, leading to partial updates and frames drawn twice. Change-Id: I532bff692c597eeba5bbd6def89ae68c80fdd69b Done-with: Mikko Harju <mikko.harju@jollamobile.com> Reviewed-by:
Gunnar Sletta <gunnar.sletta@digia.com>
-
- 19 Nov, 2013 - 1 commit
-
-
Gunnar Sletta authored
Task-number: QTBUG-33363 Change-Id: Ia2b0c329157786cb4ec703989f12d2fdb1ce6bc8 Reviewed-by:
Laszlo Agocs <laszlo.agocs@digia.com>
-
- 18 Nov, 2013 - 1 commit
-
-
Gunnar Sletta authored
Task-number: QTBUG-34806 Change-Id: I5013baaff0ca86357292474976944c1a3056f219 Reviewed-by:
Friedemann Kleint <Friedemann.Kleint@digia.com> Reviewed-by:
Laszlo Agocs <laszlo.agocs@digia.com>
-
- 05 Nov, 2013 - 1 commit
-
-
Gunnar Sletta authored
Change-Id: I12bc0bc475b3e99185aefcd58eef5a0fb5e9852e Reviewed-by:
Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
-
- 01 Nov, 2013 - 1 commit
-
-
Gunnar Sletta authored
This API is primarily a hook which is needed by the Qt WebEngine to set up sharing with the scene graph's OpenGL contexts. Change-Id: I5bb03abd9ab99f502db8e413fe838a8b30365b8d Reviewed-by:
Jocelyn Turcotte <jocelyn.turcotte@digia.com>
-
- 30 Oct, 2013 - 1 commit
-
-
Gunnar Sletta authored
See the task for the full reasoning behind this patch. The threaded renderloop has been refactored to have one window per thread. This is mostly a simplification of the current code path where for loops over multiple windows are turned into if (window). The QSGContext has been split into two classes, QSGRenderContext for which there is one per OpenGLContext. The rest of the patch is name changes and a couple of cleanups in the hopes of simplifying this change. Task-number: QTBUG-33993 Change-Id: I31c81f9694d7da7474a72333169be38de62613c4 Reviewed-by:
Sean Harmer <sean.harmer@kdab.com>
-
- 30 Sep, 2013 - 1 commit
-
-
Gunnar Sletta authored
Change-Id: I3750c47640bf21c3567c5fa1c4667e3e2552942e Reviewed-by:
Lars Knoll <lars.knoll@digia.com>
-
- 26 Sep, 2013 - 1 commit
-
-
Dmitry Shachnev authored
Change-Id: Icd612b243cdfe1248d1b94964c53f5102f9558d2 Reviewed-by:
Gunnar Sletta <gunnar.sletta@digia.com>
-
- 21 Sep, 2013 - 1 commit
-
-
Gunnar Sletta authored
This introduces 6 new QML types for animating state in the scene graph when the UI thread is blocked. The QObject property being animated is updated after the animation completes. It works also with the "windows" and "basic" render loops, but offer litte benefit then compared to in the "threaded" case. Change-Id: Ic19e47c898c0b8bd53e457db922b3c9c457c8147 Reviewed-by:
Lars Knoll <lars.knoll@digia.com>
-
- 07 Jun, 2013 - 1 commit
-
-
Alan Alpert authored
This was the one convenience that was lost when transitioning templates from QQuickView + Item{} to QQmlApplicationEngine + Window{}. As the default window incubation controller was tied to the first window's frameSwapped, we could easily run into a situation where a secondary window required incubation while the first window was idle. This would then starve the incubation controller. Instead make it so that the renderloop emits "timeToIncubate" once it is done with a renderpass over all windows, so the incubator gets to run once and exactly once per vsync when animating. The incubator logic was also flawed in that it could post a lot of events to itself as a result of incubatingObjectCountChanged and thus starve system events while processing incubation requests. Now we start a timer and don't start it again until we have completed an incubation pass. Task-number: QTBUG-31203 Change-Id: Iea9e2c81efb46bb7875c70ccda0cdc4b3b3e58e7 Reviewed-by:
Alan Alpert <aalpert@blackberry.com> Reviewed-by:
Gunnar Sletta <gunnar.sletta@digia.com>
-
- 06 May, 2013 - 1 commit
-
-
Christiaan Janssen authored
Change-Id: Ide71b330b13fc3816ed191bd9af84e0fce0d9587 Reviewed-by:
Kai Koehne <kai.koehne@digia.com>
-
- 24 Apr, 2013 - 1 commit
-
-
Gunnar Sletta authored
The normal GUI thread render loop has several problems on windows. It does not do vsync animations and on some hardware, where the vsync delta is higher than the time it takes to fire a 16ms timer, the eventloop will always contain at least one event and we never return to processing non-client area events, like resize. Also, threaded OpenGL seems rather unstable, so the threaded renderer is not a stable option. So we introduce a windows based renderloop. It is fully cross platform but written to make the most out of the limitations which exist. The overall goal is: - vsync animations when allowed by the system. We get this by using an animation driver and advancing in sync with rendering - Keep system load low and allow for NC processing. The maybeUpdate function will start a short timer which will let the renderloop idle for few ms, allowing the eventloop to pick up system events. (this is similar to what the threaded renderer also does, btw) Change-Id: Ic192fd0ed7d5ecdaa2c887c08cbeb42c5de6b8a8 Reviewed-by:
Friedemann Kleint <Friedemann.Kleint@digia.com> Reviewed-by:
Samuel Rødal <samuel.rodal@digia.com>
-
- 17 Apr, 2013 - 1 commit
-
-
Gunnar Sletta authored
The renderWithoutShowing was a piece of functionality that we experimented on long ago and it never quite worked and has it currently only adds bloat. It would be sensible to be able to render a window without showing it on screen, such as for testing purposes, but then it should be done through proper public API and thouroughly supported cross platform. Change-Id: I6bea7335f769c038a8167bad77c2dba171359be9 Reviewed-by:
Yoann Lopes <yoann.lopes@digia.com> Reviewed-by:
Samuel Rødal <samuel.rodal@digia.com>
-
- 04 Apr, 2013 - 2 commits
-
-
Gunnar Sletta authored
After much back and forth, I think we have settled on the right approach in QtGui, which is that resizeEvent is pretty much useless as the action happens on the following exposeEvent(). Change-Id: I5e87bda89853907d041f56acf9a2895e540c41f0 Reviewed-by:
Samuel Rødal <samuel.rodal@digia.com>
-
Gunnar Sletta authored
Change-Id: I4e88b479a8a9a5126312a05800e8170511b1f7ac Reviewed-by:
Samuel Rødal <samuel.rodal@digia.com>
-
- 13 Mar, 2013 - 1 commit
-
-
Gunnar Sletta authored
Task-number: QTBUG-30158 Change-Id: Ic8239fe6f074c989e4474d46042e1a82796b4908 Reviewed-by:
Samuel Rødal <samuel.rodal@digia.com>
-
- 21 Feb, 2013 - 1 commit
-
-
Gunnar Sletta authored
We needs this on non-compositing window managers to trigger repaints on partial updates. Change-Id: Ied5f3e854173c5e00ad7e1222aeb66eb9c96158c Reviewed-by:
Samuel Rødal <samuel.rodal@digia.com>
-
- 18 Feb, 2013 - 1 commit
-
-
Gunnar Sletta authored
Change-Id: I6f9ab43ad6d149295487d9f69ceb0131cd142776 Reviewed-by:
Samuel Rødal <samuel.rodal@digia.com>
-
- 18 Jan, 2013 - 1 commit
-
-
Gunnar Sletta authored
This change starts using the superior implementation of the scene graph render loop which has been worked on in the scenegraph-playground project for a while. It uses a far more straightforward locking/sync paradigm compared to the existing one and is less deadlock and error prone. It also enables the scene graph thread to run on its own when the GUI thread is blocked, enabling threaded animations. This changes also introduces a naming change inside Qt Quick from "Window Manager" -> "Render Loop" as that fits better to what the code does. Change-Id: I1c2170ee04fcbef79660bd7dae6cace647cdb276 Reviewed-by:
Samuel Rødal <samuel.rodal@digia.com>
-
- 10 Jan, 2013 - 1 commit
-
-
Sergio Ahumada authored
Change-Id: I6c3bd7bebe3d62d1cfd0fa6334544c9db8398c76 Reviewed-by:
Akseli Salovaara <akseli.salovaara@digia.com> Reviewed-by:
Sergio Ahumada <sergio.ahumada@digia.com>
-
- 23 Dec, 2012 - 1 commit
-
-
Thiago Macieira authored
qml/qml/qqmlimport.cpp:982:30: error: unused parameter 'errors' [-Werror=unused-parameter] quick/util/qquickanimationcontroller.cpp:66:6: error: unused parameter 'job' [-Werror=unused-parameter]' quick/items/qquickshadereffectnode.cpp:160:17: error: case value '38' not in enumerated type 'QVariant::Type' [-Werror=switch] quick/items/qquickwindowmanager.cpp:286:60: error: 'renderTime' may be used uninitialized in this function [-Werror=maybe-uninitialized] quick/items/qquickitem.cpp:5267:67: error: comparison between signed and unsigned integer expressions [-Werror=sign-compare] and a few more repeated from the above Change-Id: Id1950c6ba98f7f8475975716b21bd795ecb4bd20 Reviewed-by:
Alan Alpert <aalpert@rim.com>
-
- 16 Nov, 2012 - 1 commit
-
-
Samuel Rødal authored
Without threaded rendering QML 2 often ends up running at half the screen refresh rate on X11. Not having BufferQueuingOpenGL shouldn't prevent us from using threaded rendering, since the issue of four animating windows running at 1/4th of the screen refresh rate will happen regardless of whether rendering happens on the main thread or in a separate rendering thread. Change-Id: I0edc818e6d762fa1faf13e7f2f47dfda132b6fdf Reviewed-by:
Friedemann Kleint <Friedemann.Kleint@digia.com>
-
- 20 Oct, 2012 - 1 commit
-
-
Friedemann Kleint authored
As they also triggers when a non-existing file is loaded into QML2 or windows have invalid sizes. Change-Id: Iab1ce6c99f2bc2cb360ddaccce539cb97979ad5a Reviewed-by:
Kai Koehne <kai.koehne@digia.com> Reviewed-by:
Christiaan Janssen <christiaan.janssen@digia.com>
-
- 15 Oct, 2012 - 1 commit
-
-
Marco Bubke authored
DesignerWindowManager implements a render path just for Qt Quick Designer, which is single threaded and does not open visible windows. Change-Id: I02b0d1b819a7a5391b9bb14ee6efa1a32e0c8ad7 Reviewed-by:
Samuel Rødal <samuel.rodal@digia.com>
-
- 28 Sep, 2012 - 1 commit
-
-
Balazs Kelemen authored
To make QQuickWindowPrivate::setRenderWithoutShowing more useful for autotesting we can allow grabbing such windows. This is safe if the platform window have been created and the window has a valid size. Change-Id: I8b9a2aaeb93935f662b75ef29651730b890441d5 Reviewed-by:
Samuel Rødal <samuel.rodal@digia.com> Reviewed-by:
Jocelyn Turcotte <jocelyn.turcotte@digia.com>
-
- 23 Sep, 2012 - 1 commit
-
-
Iikka Eklund authored
Change copyrights and license headers from Nokia to Digia Change-Id: Ie7f5d49ed8235d7a7845ab68f99ad1c220e64d5c Reviewed-by:
Lars Knoll <lars.knoll@digia.com>
-
- 10 Sep, 2012 - 3 commits
-
-
Thomas McGuire authored
The sync time was not taken into account Change-Id: I3d8adb637572c72438e20729a80513850a80d17e Reviewed-by:
Sean Harmer <sean.harmer@kdab.com> Reviewed-by:
Alan Alpert <416365416c@gmail.com>
-
Thomas McGuire authored
This is quite useful to see how much time the rest of the app takes. The same information has been available in QtQuick1. Change-Id: I31ae91bfa764a4d8013af80de9459514ed72314f Reviewed-by:
Gunnar Sletta <gunnar.sletta@nokia.com> Reviewed-by:
Sean Harmer <sean.harmer@kdab.com>
-
Thomas McGuire authored
Change-Id: Ia3958c7c26bf2fd9dd72a07fc6f5ff3a28b0a349 Reviewed-by:
Gunnar Sletta <gunnar.sletta@nokia.com> Reviewed-by:
Sean Harmer <sean.harmer@kdab.com>
-
- 04 Sep, 2012 - 1 commit
-
-
Gunnar Sletta authored
Tie incubation directly to wether animations are running or not. When animations are running, we incubate for a third of a frame only. When animations are not running we incubate whatever is left as the scene is anyway idle. Change-Id: I88c9248e9d7b3b35c99fca52aeb9c681d1b4a306 Reviewed-by:
Martin Jones <martin.jones@nokia.com>
-
- 24 Jul, 2012 - 1 commit
-
-
Alan Alpert authored
Change-Id: I90364c3e96e5bcbff84d8da574af5695a0fd7993 Reviewed-by:
Glenn Watson <glenn.watson@nokia.com>
-
- 17 Jul, 2012 - 2 commits
-
-
Charles Yin authored
Change-Id: I599ec0347a55422a3c85c89e0f6817b7f2d1343e Reviewed-by:
Gunnar Sletta <gunnar.sletta@nokia.com> Reviewed-by:
Chris Adams <christopher.adams@nokia.com>
-
Alan Alpert authored
QQuickCanvas is now called QQuickWindow QQuickCanvas::rootItem is now QQuickWindow::contentItem QQuickItem::canvas is now QQuickItem::window QQuickItem::ItemChangeData::canvas is also renamed window QQuickCanvas::grabFrameBuffer is now QQuickWindow::grabWindow The functions related to the color property have dropped the clear from their names. The first three changes have interim compatibility measures in place to ease the transition. Change-Id: Id34e29546a22a74a7ae2ad90ee3a8def6fc541d2 Reviewed-by:
Martin Jones <martin.jones@nokia.com>
-
- 01 Jun, 2012 - 1 commit
-
-
Morten Johan Sorvig authored
At app startup there is often a delay between setting a window visible and the window being exposed by the window manager. Add check to canvas->isExposed() before calling swapbuffers. Change-Id: I5e588ab334a72c4fe817da44eff4c3dc785d6b1f Reviewed-by:
Robin Burchell <robin+qt@viroteck.net> Reviewed-by:
Gunnar Sletta <gunnar.sletta@nokia.com>
-
- 29 May, 2012 - 1 commit
-
-
Gunnar Sletta authored
On Mac OS X and other systems with buffer queueing GL, we have very jerky animations as the pipeline does not block at regular intervals, causing the current-time based animations to come out very jerky despite us rendering at 60 FPS with a very good margin. To remedy this, we switch the default so that we by default advance with a fixed increment, making the uneven frames not a problem. This then comes at the cost of that animations will slow down if the application does not manage to render within 16 ms, but this is an acceptible compromise. Aka, now it will occationally look bad, as opposed to always bad which it currently does. Change-Id: I44a6c3e51f434e4235e49485182380ea531876d9 Reviewed-by:
Michael Brasser <michael.brasser@nokia.com>
-
- 24 May, 2012 - 1 commit
-
-
Samuel Rødal authored
BufferQueuedOpenGL doesn't necessarily imply threading support. Change-Id: I4ba8e3b9acfd3eb12bb41aa6b644c852ae5fa1c6 Reviewed-by:
Gunnar Sletta <gunnar.sletta@nokia.com>
-
- 22 May, 2012 - 1 commit
-
-
Gunnar Sletta authored
We would like to make a distinction between QQuickItem::update() which triggers updatePaintNode() to synchronize the scene graph and requesting the toplevel QQuickCanvas to be repainted. If we have this distinction in place it is possible for the scene graph to detect that the scene is unchanged and avoid rendering unless the user has explicitely asked for the canvas to be repainted, which is often the case when hooking into QQuickCanvas::beforeRender(). Change-Id: Ibe77f58423593deb217ef9f8082fa12009f45daf Reviewed-by:
Samuel Rødal <samuel.rodal@nokia.com>
-
- 21 May, 2012 - 1 commit
-
-
Samuel Rødal authored
Update when we get an expose event, like the trivial renderer does. Change-Id: Ib95559da35b94d84c0935c6abb24fdfb1e05fa1c Reviewed-by:
Gunnar Sletta <gunnar.sletta@nokia.com>
-