summaryrefslogtreecommitdiffstats
path: root/src/render/backend/platformsurfacefilter_p.h
Commit message (Collapse)AuthorAgeFilesLines
* Replace Q_DECL_OVERRIDE with overrideKevin Funk2017-09-251-1/+1
| | | | | Change-Id: I92c955068e233c50043ad7d06a32300dd386c24d Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* Fix crash in scene2d when using angleAntti Määttä2017-03-061-1/+3
| | | | | | | | | | Angle can't do multithreaded rendering on shared context so it needs to synchronize the rendering with qt3d render thread. The SurfaceLocker uses static mutex, so using it to lock the surface will prevent simulatious rendering as well. Flag the surface lock for angle build only. Change-Id: I83d4e1f1d6a48e86196bc113cbab4ee79205b61f Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* PlatformSurfaceFilter: remove assertPaul Lemire2016-08-251-1/+0
| | | | | | | | | Needed so that we can have unit tests which unset the window before destruction. Otherwise we end up with crashed with the PlatformSurfaceFilter trying to unconnect itself for a destroyed window. Change-Id: If9fe61dea8e5e0e55401c67fcaabc3dd78c4284b Reviewed-by: Kevin Ottens <kevin.ottens@kdab.com>
* Fix more QSurface vs QObject wranglingSean Harmer2016-03-281-1/+3
| | | | | | | | Qt 3D is now able to render again. Change-Id: I588da23eeb6d8760f26014c2d7e5ea4ca45eefec Reviewed-by: Volker Krause <volker.krause@kdab.com> Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* Fix vexing parse warning by locking the surfaceSean Harmer2016-03-201-2/+1
| | | | | | | Also fix spurious newline Change-Id: I5a1797b5fb402b452329c5c8b116e3528481d741 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* Renderer/QRenderTargetSurfaceSelector: implement proper synchronizationPaul Lemire2016-03-171-10/+24
| | | | | | | This is needed to avoid rendering on a surface that has been destroyed. Change-Id: Iadc2a32e2e0113704ca4df48df6bcdd1a0d8256c Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* Unify license header usageAntti Kokko2016-01-261-11/+14
| | | | | | | Update old header.LGPL3 to header.LGPL Change-Id: I8eac0cd6bbc276a56df487249cc459c0d4fab165 Reviewed-by: Jani Heikkinen <jani.heikkinen@theqtcompany.com>
* QRenderAspect/Renderer: refactored to use the AbstractRenderer interfacePaul Lemire2015-11-241-4/+5
| | | | | Change-Id: I662577e6dd337b1f056f73b4a11262e902d4dde2 Reviewed-by: Andy Nichols <andy.nichols@theqtcompany.com>
* Add "We mean it" warnings to private headersSean Harmer2015-10-131-0/+11
| | | | | Change-Id: Ic4a69123255c33990765ea3601e01914c2d8cb70 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* Move Render aspect into the Qt3DRender namespaceSean Harmer2015-10-131-5/+5
| | | | | | | Updated examples and tests accordingly. Change-Id: I8848a88472de2302aa072fa11f21ea934672b7e6 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* Copyright header change.Mika Salmela2015-02-091-19/+14
| | | | | | | | As for preparation for Qt5.5 release the copyright header is updated to correspond the current license requirements. Change-Id: I36632918b66f455539453b42c369689fb11298ec Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* Cleanly exit the render threadSean Harmer2014-11-171-0/+101
We have to mutex protect accesses to the m_surface variable in the Renderer as the main thread may call destroy() on the corresponding QWindow. This can happen in response to the window being closed or changing QScreens. Calling swapBuffers() on a QSurface that has been destroyed does not fail gracefully but crashes. This change works around this by using the new QPlatformSurfaceEvent in QtGui which is sent to the window or offsceen surface when the platform surface has been created or is about to be destroyed. This event is used to inform the renderer to stop rendering to the window surface in a safe manner, before the native surface gets destroyed. The Renderer::submitRenderViews() now checks at the start of each frame that the m_surface is still valid. There is still another crash at shutdown if applications are sending a lot of updates to the backend. Change-Id: I742226c7ae8f657e218cbcd45f0dff3d2b7bcc18 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>