summaryrefslogtreecommitdiffstats
path: root/src/core/delegated_frame_node.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Merge branch '5.9' into 5.10Allan Sandfeld Jensen2017-11-011-11/+34
|\ | | | | | | | | | | | | | | | | | | | | | | Conflicts: .qmake.conf src/core/core_module.pro src/core/delegated_frame_node.cpp src/core/surface_factory_qt.cpp src/webenginewidgets/api/qwebengineprofile.cpp tests/auto/widgets/widgets.pro Change-Id: I92f3ef4eee779afef6c5381a7aa8b551417c1b17
| * Fix overeager freeing of resources in DelegatedFrameNodeJüri Valdmann2017-10-261-2/+20
| | | | | | | | | | | | | | | | | | | | | | After every run of DelegatedFrameNode::commit we take all the resources we didn't need and queue them for freeing. Problems appear however with the recent change that introduced clipping of invisible render passes and draw quads as we may now decide to release resources too early and eventually crash. Task-number: QTBUG-64032 Change-Id: I95138bc4c1caf8c191bfc801264309c5b03ef0f3 Reviewed-by: Michael Brüning <michael.bruning@qt.io>
| * Fix viewport resizing bug in rendererJüri Valdmann2017-09-221-8/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | After the recent fix for rendering intersecting quads, DelegatedFrameNode no longer builds scene graph nodes for DrawQuads that are outside the visible area. This means that the structure of the scene graph now depends on the size of the visible area, however the logic for deciding whether to update or rebuild the scene graph was not updated to reflect this fact. As a result we may try to update e.g. a QSGImageNode as if it were a QSGRectangleNode leading to a crash. Task-number: QTBUG-62112 Change-Id: I6e2e9dee4238d208fc2be98669281c2d4d4962d7 Reviewed-by: Peter Varga <pvarga@inf.u-szeged.hu> Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* | Adaptations to 61-basedAllan Sandfeld Jensen2017-10-251-3/+3
| | | | | | | | | | Change-Id: I5cb198445f283c6cea8187a1a2883896df0ee918 Reviewed-by: Michal Klocek <michal.klocek@qt.io>
* | Merge remote-tracking branch 'origin/5.9' into 5.10Allan Sandfeld Jensen2017-09-291-141/+262
|\| | | | | | | Change-Id: I7094e85a7770303a2ae30baccbc484c04f33600e
| * Fix rendering of intersecting quadsJüri Valdmann2017-09-191-7/+129
| | | | | | | | | | | | | | | | | | | | | | Split intersecting quads using a BSP tree in the same manner as Chromium's rendering algorithm. Note that these split quads still will not be correctly rendered in software mode as Qt Quick's software renderer is not at all aware of non-rectangular QSGClipNodes. Task-number: QTBUG-62112 Change-Id: Ibfb72b9220817baebf828bc6183af7bd9c25d050 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
| * Extract DrawQuad handling from DelegatedFrameNode::commitJüri Valdmann2017-09-181-135/+134
| | | | | | | | | | | | | | | | Refactoring only, no algorithmic changes. Task-number: QTBUG-62112 Change-Id: I871105ea48cd513e03b957d7daa9fe095c952a52 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* | Adaptations for Chromium 60Alexandru Croitor2017-09-111-6/+11
| | | | | | | | | | | | Change-Id: I536258e22c2ec143f2fd3f1cbda229e0611b6af4 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
* | Adaptations for Chromium 59Allan Sandfeld Jensen2017-09-111-2/+2
| | | | | | | | | | Change-Id: I472053e316bfa782d0a6fb8903f4901be12247ae Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* | Merge branch '5.9' into 5.10Allan Sandfeld Jensen2017-09-061-0/+1
|\| | | | | | | Change-Id: I9fe9946ba47f9ef509a861963c83e275a25fffd0
| * Fix upside down rendering of render-passes in software modeAllan Sandfeld Jensen2017-08-281-0/+1
| | | | | | | | | | | | | | | | | | The software backend version of QSGLayer defaults to not mirroring vertically, where the OpenGL does, and we rely on that. Task-number: QTBUG-62112 Change-Id: Id5368728fd7046d2e4dc35bd4b2b61f2db35dac6 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* | Remove support for building with Qt versions < 5.8.0Allan Sandfeld Jensen2017-08-041-14/+0
| | | | | | | | | | Change-Id: I2f2ba754111e198298b7d1a595343fcd773e05e5 Reviewed-by: Kai Koehne <kai.koehne@qt.io>
* | Graphics adaptations for Chromium 58Allan Sandfeld Jensen2017-06-141-17/+5
| | | | | | | | | | Change-Id: I66262ce7943bd5ba98defff5e4a33063b2ed0353 Reviewed-by: Peter Varga <pvarga@inf.u-szeged.hu>
* | Adaptations for Chromium 57Allan Sandfeld Jensen2017-06-141-11/+12
|/ | | | | Change-Id: Ia2756c1e9b13839c2330bd98cf953d47cbdac0dd Reviewed-by: Peter Varga <pvarga@inf.u-szeged.hu>
* Fix backwards compatibilityAllan Sandfeld Jensen2017-05-101-0/+9
| | | | | | | | | | QtWebEngine supports building with last stable and last LTS Qt releases. Guard some 5.7-5.9 API from being used when not available, and reinstate the default features for 5.6 LTS builds. Change-Id: Ia288a49109d011a2bee883d4a2d38d994b497d59 Reviewed-by: Michael Brüning <michael.bruning@qt.io>
* Fix undeclared use of QSGFlatColorMaterial when QT_NO_OPENGL is definedJüri Valdmann2017-04-261-4/+4
| | | | | | | | | | | QtWebEngine fails to build with -no-opengl due to src/core/delegated_frame_node.cpp trying to use QSGFlatColorMaterial without including the header. Change-Id: I98c12d3c482f7cacb2f61dd13ae32ee0a5740ae2 Reviewed-by: Michael Brüning <michael.bruning@qt.io>
* Standardize override declarationAllan Sandfeld Jensen2017-04-211-20/+21
| | | | | | | | Update our overrides to Qt coding standard getting rid of Q_DECL_OVERRIDE and redundant virtual declarations. Change-Id: Id8b0750eb05c51fc8f50cac4000a811eebcbf918 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Handle texture nodes alternative source rectAllan Sandfeld Jensen2017-03-221-8/+18
| | | | | | | | | | Texture nodes has an alternative and rarely used way of setting source rect using uv_top_left and uv_bottom_right. This patch adds support for it. Task-number: QTBUG-59407 Change-Id: Ic14c3dbdede6ece07eb3cda2dcfea8e860654ef2 Reviewed-by: Michael Brüning <michael.bruning@qt.io>
* Simple adaptations to Chromium 55Allan Sandfeld Jensen2017-03-011-4/+7
| | | | | | | The simplest adaptations to API and build changes in Chromium 55 Change-Id: I923fa188690a04902492317807f72f006bcab9c6 Reviewed-by: Michal Klocek <michal.klocek@qt.io>
* Fix crashes in removeFromCanvasMichael Brüning2017-02-151-7/+19
| | | | | | | | | | | | | After reparenting the view, the compositor data may still be the same, but the node might be a different one. Check if the list of scene graph nodes is empty when making the decision on whether to build a new node tree or not. Also advance the node iterator for missing render passes. Task-number: QTBUG-58472 Change-Id: I28dfb40bda89470c7cdaec0aef8a976e307f5b6a Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io> Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* Merge remote-tracking branch 'origin/5.8' into 5.9Allan Sandfeld Jensen2017-02-081-1/+1
|\ | | | | | | Change-Id: I0c3654ad097809fe10bcc6a15827a0af3006c4e6
| * Avoid crash in desktop linux with --disable-gpuAllan Sandfeld Jensen2017-02-011-1/+1
| | | | | | | | | | | | | | Don't try to access null OpenGL contexts. Change-Id: I7d0e607e8d29d3cfba8d6e98cd142b951c960281 Reviewed-by: Michal Klocek <michal.klocek@qt.io>
* | Optimize scene graph rendering by reusing old nodes if possibleMichael Brüning2017-01-111-98/+434
|/ | | | | | | | | | | | | | | | | | | | | | | Previously, Qt WebEngine always dropped all existing scene graph nodes that were created for previous frames and built up a whole new tree. The main reason for this was that the render pass structure is not guaranteed to remain the same across two frames. This resulted in a full repaint of every new frame, even if only a small area had changed. We now check first if the structure of the frame data has changed across two sequential frames. We only discard the old nodes if there actually has been a change. Otherwise, we reuse the scene graph nodes and only update the nodes that have changed. A general exception to this at the moment is video. In case any streaming video or yuv video nodes are found in the render pass, all nodes get recreated. Task-number: QTBUG-57720 Change-Id: I8998577af48a163d54144f205c316ee427ed0307 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io> Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* Build with Qt 5.6Allan Sandfeld Jensen2016-11-171-1/+5
| | | | | | | Make minimal changes so QtWebEngineCore 5.8 still builds with Qt LTR. Change-Id: Iae3ae606b3457a6ca311ae174b3d2a331e9b20bc Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Fix building when QT_NO_OPENGL is definedAndy Nichols2016-10-021-13/+46
| | | | | | | Task-number: QTBUG-54327 Change-Id: I759598d56aa0a74b64092365b422a743fb508ac6 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* Merge remote-tracking branch 'origin/5.7' into 5.8Liang Qi2016-09-211-20/+63
|\ | | | | | | | | | | | | | | | | Conflicts: src/3rdparty src/core/delegated_frame_node.h src/webengine/api/qquickwebenginecontextmenudata.cpp Change-Id: I163488d0d32cd981351608b2886f12e547e24672
| * Merge remote-tracking branch 'origin/5.6' into 5.7Michal Klocek2016-08-311-20/+63
| |\ | | | | | | | | | Change-Id: Ic739ab9db0851cc13467168840ea2549996432f8
| | * Fix textures memory leak on second X11 screenMichal Klocek2016-08-241-20/+62
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fix for QTBUG-48969 was only half-baked patch and introduced massive memory leak on fbo and texture alloctaions. Delete fbo and extra allocated textures. Task-number: QTBUG-52575 Task-number: QTBUG-48969 Change-Id: I2148f37cd27dab9e40ab72caeb6857752b69379f Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* | | Adaptations to Chromium 53Allan Sandfeld Jensen2016-09-141-14/+14
| | | | | | | | | | | | | | | Change-Id: I15053486edfd42ee607250b4f14fb6eaa325c959 Reviewed-by: Michael Brüning <michael.bruning@qt.io>
* | | Adaptations to Chromium 52Allan Sandfeld Jensen2016-09-141-19/+6
| | | | | | | | | | | | | | | Change-Id: Idf8a511ba26d263fd9d014d87d5e1101d706da71 Reviewed-by: Michael Brüning <michael.bruning@qt.io>
* | | Merge remote-tracking branch 'origin/5.7' into devLiang Qi2016-08-161-1/+1
|\| | | | | | | | | | | Change-Id: Id5f97771be23a4393e8d3be98903c321377ae809
| * | Check if gpu fence is supported in pullTextureMichal Klocek2016-08-091-1/+1
| | | | | | | | | | | | | | | | | | Task-number: QTBUG-53972 Change-Id: Ie722e40e4763c5a78ce566d03fec6877d64b2023 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* | | Switch away from deprecated QSG*Node classesAllan Sandfeld Jensen2016-07-141-7/+14
| | | | | | | | | | | | | | | | | | | | | | | | Use the new public QSG classes meant to replace QSGSimpleRectNode and QSGSimpleTextureNode. Change-Id: Icdfc3b4ba13dd28258defa955d050927abbae95b Reviewed-by: Michael Brüning <michael.bruning@qt.io>
* | | Fix build with newer qtdeclarativeAllan Sandfeld Jensen2016-06-271-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | What was previous called QSGImageNode is now QSGInternalImageNode Task-number: QTBUG-54312 Change-Id: Iec286765bea5598d86932c81bfd122461a2e9884 Reviewed-by: Liang Qi <liang.qi@qt.io> Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* | | Handle new resource offset and multiplier in YUV video nodesAllan Sandfeld Jensen2016-06-011-2/+4
|/ / | | | | | | | | | | | | | | Handles new properties added to YUV nodes to handle 9- and 10-bit per color channel videos. Change-Id: If96660995650d3deeda7601714146fafeef57176 Reviewed-by: Michael Brüning <michael.bruning@theqtcompany.com>
* | Update GL mailbox synchronization to Chromium 49v5.7.0-alpha1Allan Sandfeld Jensen2016-03-071-112/+119
| | | | | | | | | | | | | | | | | | | | | | Chromium 49 switched to using SyncToken, making our old model based on sync-points obsolete. This patch rewrites our syncing to instead take advantage of new Chromium API for waiting on sync tokens. It also moves the creation of the GLFences we use out of Chromium. Task-number: QTBUG-51173 Change-Id: I04d726d4bc81bf6b7fe39bb2b5507e84a0b6991e Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
* | Merge remote-tracking branch 'origin/5.6' into 5.7Allan Sandfeld Jensen2016-02-201-6/+65
|\| | | | | | | Change-Id: If884b8b8bc087a6a726476b49cdb48a0efaa173e
| * Do slow copy of mailbox textures when contexts are not sharedMichal Klocek2016-02-161-6/+65
| | | | | | | | | | | | | | | | | | | | In case of two individual screens on X11 qt global shared context is not shared. Copy the textures between contexts using FBO and system memory. Task-number: QTBUG-48969 Change-Id: I07d9d5e27917fd63064215b4eb1d0b134065bd43 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@theqtcompany.com>
* | Unify license header usage.Jani Heikkinen2016-02-011-11/+14
| | | | | | | | | | | | | | | | | | Update files using old header.LGPL3 to use header.LGPL Update files using old header.FLD to use new header.FDL Update files using old header.BSD to use new header.BSD Change-Id: I36a67aaa8c3ca6c7946308defc9c03c3571a7d23 Reviewed-by: Kai Koehne <kai.koehne@theqtcompany.com>
* | Merge branch '5.6' into devAllan Sandfeld Jensen2015-11-201-3/+24
|\| | | | | | | Change-Id: I05fe27b8321944cf68cc96dfa9dfcaeb54c8c8cd
| * Replace QList with QVectorKai Koehne2015-11-061-1/+1
| | | | | | | | | | | | | | | | Replace QList with QVector in all places where the type isn't a pointer, and is not already (indirectly) exposed through public API. Change-Id: I90e3db56bf9ebda6b3cb8fb4396d2ae283159727 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@theqtcompany.com>
| * Support IOSurface framesAllan Sandfeld Jensen2015-10-281-2/+23
| | | | | | | | | | | | | | | | | | | | Support getting video as IOSurface frames on OS X. With Chromium 45 we only get IOSurface frame when using non-default command-line flags. Change-Id: Ibf5226db53fa6fb51112bec9061d701918798ddd Reviewed-by: Michael Brüning <michael.bruning@theqtcompany.com>
* | Adapting to Chromium 47Allan Sandfeld Jensen2015-10-271-10/+1
|/ | | | | | | Updating to Chromium 47 and adapting API. Change-Id: Id465bbcd4facd7c47cb8a9f4bd4e18cbdc0d1120 Reviewed-by: Michael Brüning <michael.bruning@theqtcompany.com>
* Rebasing on Chromium 45Allan Sandfeld Jensen2015-08-251-10/+10
| | | | | | | Fixing the minor differences needed to work with Chromium 45. Change-Id: I5036b4b9a069d45e8dd37e24fab84cdfe5e67acc Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
* Fix build with only OpenGL/ES2Allan Sandfeld Jensen2015-07-061-0/+4
| | | | | | | | Define the needed extension when not available at compile time. Change-Id: I93be828facb2d2e3bf16ac98c04ef3544d695675 Reviewed-by: Pierre Rossi <pierre.rossi@theqtcompany.com> Reviewed-by: Andras Becsi <andras.becsi@theqtcompany.com>
* Fix video output with Chromium 44Allan Sandfeld Jensen2015-07-011-1/+17
| | | | | | | | | Updates shaders and rendering logic to match the new similar logic from Chromium. This includes separate UV and YA channels and different YUV color spaces. Change-Id: I677ec5477207a00d259d69989be6b8737803221d Reviewed-by: Zeno Albisser <zeno.albisser@digia.com>
* Fix Chromium 44 on OpenGL ES3Allan Sandfeld Jensen2015-06-231-4/+0
| | | | | | | | | | Chromium will now use the sync extension on OpenGL ES3, this means we shouldn't check for DesktopGL specific define, and since we do not use anything directly from the extension we don't need the ifdef. Change-Id: If664a885042c216079f1c58c8e6245b1c5447c9e Reviewed-by: Andras Becsi <andras.becsi@theqtcompany.com> Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
* Trivial changes for Chromium 44Allan Sandfeld Jensen2015-06-231-2/+2
| | | | | Change-Id: I8261b201f1d6623eff3427b68b8d098c17d293d3 Reviewed-by: Andras Becsi <andras.becsi@theqtcompany.com>
* Add namespace to internal QtWebEngine APIAllan Sandfeld Jensen2015-03-021-0/+3
| | | | | | | | Adds the QtWebEngineCore namespace to all internal core API. This ensures we don't export any internal symbols in the global namespace. Change-Id: I26af888ea7c6c4c4d0f04c24a377c1a9d3c92751 Reviewed-by: Andras Becsi <andras.becsi@theqtcompany.com>
* Update copyright headersJani Heikkinen2015-02-161-7/+7
| | | | | | | | | Qt copyrights are now in The Qt Company, so we could update the source code headers accordingly. In the same go we should also fix the links to point to qt.io. Change-Id: Ieb6bac7a1be5c25eb7cb917495b58b6a870ca6d4 Reviewed-by: Pierre Rossi <pierre.rossi@theqtcompany.com>