- Oct 21, 2014
-
-
Laszlo Agocs authored
The makeCurrent() call can fail if there is no underlying platform window present anymore (due to close()). Just continuing with the cleanup is wrong: There may be another context current (from the application or from some other component of Qt) and there are GL calls issued which would mess up the state in that context. Therefore we ensure there's a context/surface by using a temporary QOffscreenSurface. Task-number: QTBUG-41942 Change-Id: I79f35a1f5bbe7a8a14943e8603764575ed119f93 Reviewed-by:
Gunnar Sletta <gunnar@sletta.org>
-
- Sep 24, 2014
-
-
Gunnar Sletta authored
They would unconditionally call cleanupNodesOnShutdown on hide(), but QQuickWindow::sceneGraphInvalidated would only be emitted if this was the last window being hidden, leading to an inconsistent state in the application. Since the non-threaded render loops do not support releasing resources (there is one OpenGL context and one QSGRenderContext shared between all windows) we delay cleanup until the window is destroyed. This change also make the render loops track the windows until they are destroyed, similar to what the threaded one does. The purpose of this is to, in the case of dangling windows, only trigger invalidation of the scene graph when the last QQuickWindow is destroyed through QSGRenderLoop::cleanup(). Task-number: QTBUG-41210 Change-Id: I7e12a4f726ebb3e7935c822b6046abb3590c583a Reviewed-by:
Ulf Hermann <ulf.hermann@digia.com> Reviewed-by:
Laszlo Agocs <laszlo.agocs@digia.com>
-
- Sep 18, 2014
-
-
Gunnar Sletta authored
I've wanted this for a long time, but the animation system didn't support it when mixed with timers/pauses. However, because of dfc8f8b5d4a02f33c7f9063c2a28450902a9d863 and 0db3ea4048fe572a256deb343ea5e64a55d98de9 to qtbase, it is now possible. Change-Id: Ic70c181ce49eae90276bd4f22a2d299061f96087 Reviewed-by:
Michael Brasser <michael.brasser@live.com>
-
- Sep 11, 2014
-
-
Ulf Hermann authored
Some features, like the memory profiler, create huge amounts of data. Often enough, we're not actually interested in all the data available from the profiler and collecting it all can lead to excessive memory consumption. This change enables us to optionally turn various aspects of QML profiling off. Task-number: QTBUG-41118 Change-Id: I7bb223414e24eb903124ffa6e0896af6ce974e49 Reviewed-by:
Gunnar Sletta <gunnar@sletta.org>
-
- Aug 25, 2014
-
-
Jani Heikkinen authored
- Renamed LICENSE.LGPL to LICENSE.LGPLv21 - Added LICENSE.LGPLv3 & LICENSE.GPLv2 - Removed LICENSE.GPL Change-Id: I84a565e2e0caa3b76bf291a7d188a57a4b00e1b0 Reviewed-by:
Jani Heikkinen <jani.heikkinen@digia.com>
-
- Aug 08, 2014
-
-
Simon Hausmann authored
The default remains OpenGLSurface. Change-Id: I96b400b7aa9c2b0435ea0614598e1b1f32b6d6b2 Reviewed-by:
Lars Knoll <lars.knoll@digia.com>
-
- Aug 05, 2014
-
-
Jocelyn Turcotte authored
Change-Id: I438c33a1dc83fd0cd1ec08bb4e4a1257a3216ca2 Reviewed-by:
Laszlo Agocs <laszlo.agocs@digia.com>
-
- Jul 03, 2014
-
-
Sérgio Martins authored
windowDestroyed() triggers a sendPostedEvent(DeferredDelete) to cleanup GL resources. If the window was deleted through deleteLater() it will also be deleted at this point. Change-Id: I3b0cc0f36c4a543c5fbaa4af107dc4aa0c8b6725 Reviewed-by:
Gunnar Sletta <gunnar.sletta@jollamobile.com>
-
- Jul 02, 2014
-
-
Ulf Hermann authored
The swap time was treated as absolute by the qCDebug output, but was actually relative. Change-Id: Ia1539b8f8305ca37430022803419eb12a05934cb Reviewed-by:
Gunnar Sletta <gunnar.sletta@jollamobile.com>
-
Ulf Hermann authored
Previously the polish timings were collected incorrectly from the windows render loop and not at all from the basic render loop. By collecting the polish times at the right places we can get rid of the 2-argument profile macro as well. Task-number: QTBUG-39876 Change-Id: I0b4aaf87162c652b8dcea6cd4f54db053f8312fe Reviewed-by:
Gunnar Sletta <gunnar.sletta@jollamobile.com>
-
- Jul 01, 2014
-
-
Gunnar Sletta authored
Change-Id: I865ee838b0fd6c257b7189f24130012b98206fd1 Reviewed-by:
Shawn Rutledge <shawn.rutledge@digia.com>
-
- May 05, 2014
-
-
Gunnar Sletta authored
Instead of sending multiple touch updates per frame, we store the last one and flush the pending events just before we enter into the scene graph sync phase. [ChangeLog][QtQuick] QQuickWindow will compresses touch events and delivers at most one touch event per frame. Done-with: Robin Burchell <robin.burchell@jollamobile.com> Change-Id: Ia0169bc4a3f0da67709b91ca65c326934b55d372 Reviewed-by:
Laszlo Agocs <laszlo.agocs@digia.com> Reviewed-by:
Shawn Rutledge <shawn.rutledge@digia.com>
-
- Apr 25, 2014
-
-
Laszlo Agocs authored
Task-number: QTBUG-38564 Change-Id: Ice1170339f7d650fcb6accfccf325471629343d6 Reviewed-by:
Sean Harmer <sean.harmer@kdab.com>
-
- Apr 04, 2014
-
-
Jocelyn Turcotte authored
This removes QSGContext::sharedOpenGLContext and replace its uses with QOpenGLContextPrivate::globalShareContext, which is also going to be used by QOpenGLWidget and QQuickWidget. Change-Id: I1e296c3e6832f717caaf31ba7d7b27c06249219b Reviewed-by:
Laszlo Agocs <laszlo.agocs@digia.com>
-
- Mar 29, 2014
-
-
Gunnar Sletta authored
Doing it on 'aboutToQuit' meant we would clean it up whenever an application ran QCoreApp::exec() which could be multiple times per application run. Change-Id: I59e06398a551ae7979e3832dff811937037fa106 Reviewed-by:
Robin Burchell <robin+qt@viroteck.net>
-
- Mar 20, 2014
-
-
Morten Johan Sørvig authored
Multiply by window->devicePixelRatio() at all qt_gl_read_framebuffer() call sites. Task-number: QTBUG-35962 Change-Id: If58e4f97fc5d931ba2e222f8cb1a0641d52c3257 Reviewed-by:
Gunnar Sletta <gunnar.sletta@jollamobile.com>
-
- Mar 17, 2014
-
-
Gunnar Sletta authored
The cleanup() function would deregister the render loop from all windows the render loop had seen, but the render loop doesn't see windows until the window gets a showEvent and for some implementations it was removed as a result of hideEvent. So add explicit tracking to QSGRenderLoop which is managed by QQuickWindow's constructor and destructor. With this, we no longer need the lists from the subclasses, so these functions are removed again. Change-Id: I05e5507ad57e23c80bacd99752654cc7d0890dc1 Reviewed-by:
Paul Olav Tvete <paul.tvete@digia.com>
-
Giulio Camuffo authored
This does in the QSGGuiThreadRenderLoop what 403045a5 did for the QSGThreadedRenderLoop. Fix a memory corruption in Mesa's dri2 EGL when setting a window current after deleting the previous current one. Change-Id: I8df0bacdf12f71e969a9ea39842a402c9a2a303f Reviewed-by:
Gunnar Sletta <gunnar.sletta@jollamobile.com>
-
- Mar 14, 2014
-
-
Gunnar Sletta authored
e13547c5 used a global static to clean up QSGRenderLoop which is triggered very late, potentially after SG backend API plugins have been unloaded. This results in crashes when used in combination with scenegraph-playgrounds's customcontext. Partially revert the change and instead clean up at the time of QApp::aboutToQuit and make sure we also disconnect cleanly from all QQuickWindows. This change also ensures that QSGRenderLoop::windowDestroyed() gets called for all QQuickWindows registered with the render loop. This ensures that rendering stops and that scene graph nodes and resources will be cleaned up regardless of whether the application has remembered to delete the window or not. This is a good thing as it makes the scene graph shutdown a bit cleaner. Change-Id: I9cb9093979f8eac05542f118a6ff9cfe5c84f745 Reviewed-by:
Paul Olav Tvete <paul.tvete@digia.com>
-
- Mar 13, 2014
-
-
Friedemann Kleint authored
Add QQuickWidget::sceneGraphError() equivalent to QQuickWindow::sceneGraphError(), move message formatting code to QQuickWindowPrivate. Change-Id: I18cd4d7e0f6ee1011c29375218dc6a044b0d2cf2 Reviewed-by:
Laszlo Agocs <laszlo.agocs@digia.com>
-
- Mar 04, 2014
-
-
Laszlo Agocs authored
The error signal patch added some usages of QOpenGLFunctions::isES(). These need to be temporarily removed. Change-Id: Ibd1d8094059020708aefe4b3502ba56d624928b3 Reviewed-by:
Friedemann Kleint <Friedemann.Kleint@digia.com> Reviewed-by:
Jørgen Lind <jorgen.lind@digia.com>
-
- Feb 25, 2014
-
-
Gunnar Sletta authored
Also marked the new afterAnimation() signal as \since 5.3 and introduced proper revisioning on the new signals. [Changelog][QtQuick] Added QQuickWindow::afterSynchronizing(), openglContextCreated(), sceneGraphAboutToStop(). Useful for deeper integration with the rendering. Change-Id: I5532b310506c2432325595e55ef9307b8934abee Reviewed-by:
Laszlo Agocs <laszlo.agocs@digia.com>
-
Marco Bubke authored
The assert before test not if the scoped pointer is null but the pointer which was holding the scoping pointer. Task-number: QTBUG-36932 Change-Id: I7a5e51752446556c1796bb677fe69cbceffdd3e0 Reviewed-by:
Gunnar Sletta <gunnar.sletta@jollamobile.com>
-
- Feb 21, 2014
-
-
Laszlo Agocs authored
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>
-
- Feb 20, 2014
-
-
Laszlo Agocs authored
[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>
-
- Feb 15, 2014
-
-
Ulf Hermann authored
The QtQuick parts of the QML profiler service thus become a proper global profiler which can be independently enabled and disabled. Change-Id: Ifad03801cab2be66a264fc46fdebdae582fcc99b Reviewed-by:
Kai Koehne <kai.koehne@digia.com>
-
- Feb 04, 2014
-
-
Gunnar Sletta authored
Without this change, it is not possible to implement a custom context without also implementing a renderloop. Change-Id: Iac2aa732251cdf7221b28f665394cdd336a3d846 Reviewed-by:
Michael Brasser <michael.brasser@live.com>
-
- Jan 28, 2014
-
-
Alex Montgomery authored
s_instance is created with new and never deleted which causes several destructors to never be called. Task-number: QTBUG-35731 Change-Id: Icccb19186958f8bb74c5fd2b4b41165255debc46 Reviewed-by:
Gunnar Sletta <gunnar.sletta@jollamobile.com>
-
- Jan 22, 2014
-
-
Ulf Hermann authored
Allow multiple detailTypes in each packet and extend the profiling code to make use of that. Note that this changes the usual order of pixmapSizeKnown and PixmapLoadingFinished events. As far as I can see this doesn't affect the QML profiler frontend and the order of these events isn't specified anywhere. Change-Id: Id39ad98594ccf35add4415e08daf9e92ab561237 Reviewed-by:
Simon Hausmann <simon.hausmann@digia.com>
-
Ulf Hermann authored
Don't needlessly duplicate information about the profiler being available and allow inlining. Use macros to check availability of the profiler in calling code and generally simplify the code. Task-number: QTBUG-35315 Change-Id: I0a9daec4a95f74b9db795ef2918a01fb772ea107 Reviewed-by:
Michael Brasser <michael.brasser@live.com> Reviewed-by:
Simon Hausmann <simon.hausmann@digia.com> Reviewed-by:
Kai Koehne <kai.koehne@digia.com>
-
- Dec 12, 2013
-
-
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>
-
- Dec 03, 2013
-
-
Gunnar Sletta authored
Task-number: QTBUG-33363 (cherry-picked from commit 12eab916 ) Change-Id: Ia2b0c329157786cb4ec703989f12d2fdb1ce6bc8 Reviewed-by:
Laszlo Agocs <laszlo.agocs@digia.com>
-
- Nov 27, 2013
-
-
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>
-
- Nov 19, 2013
-
-
Gunnar Sletta authored
Task-number: QTBUG-33363 Change-Id: Ia2b0c329157786cb4ec703989f12d2fdb1ce6bc8 Reviewed-by:
Laszlo Agocs <laszlo.agocs@digia.com>
-
- Nov 18, 2013
-
-
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>
-
- Nov 05, 2013
-
-
Gunnar Sletta authored
Change-Id: I12bc0bc475b3e99185aefcd58eef5a0fb5e9852e Reviewed-by:
Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
-
- Nov 01, 2013
-
-
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>
-
- Oct 30, 2013
-
-
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>
-
- Sep 30, 2013
-
-
Gunnar Sletta authored
Change-Id: I3750c47640bf21c3567c5fa1c4667e3e2552942e Reviewed-by:
Lars Knoll <lars.knoll@digia.com>
-
- Sep 26, 2013
-
-
Dmitry Shachnev authored
Change-Id: Icd612b243cdfe1248d1b94964c53f5102f9558d2 Reviewed-by:
Gunnar Sletta <gunnar.sletta@digia.com>
-