summaryrefslogtreecommitdiffstats
path: root/src/core/delegated_frame_node.cpp
Commit message (Collapse)AuthorAgeFilesLines
* DelegatedFrameNode: Use QSGTexture::filtering()Jüri Valdmann2018-08-231-17/+9
| | | | | Change-Id: I5ab52de1eb6bd7a25e8b680f4779a505e3f1fcf0 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* Move last surface and context classes to ozoneMichal Klocek2018-08-021-1/+1
| | | | | | | | Moves last two remaining classes to ozone. Now all the context and surface handling is in ozone subdir. Change-Id: I87d4570f866b905e8f79a73d70f04bd8b21f6e1b Reviewed-by: Jüri Valdmann <juri.valdmann@qt.io>
* Use ozone for x11Michal Klocek2018-08-021-6/+6
| | | | | | | | | | | | | | | | | | | | | Switch to use ozone also for x11/glx. This way we have a more elegant approach to hook in our gl surface classes and we use ozone for all linux qpa backends. Moreover, we have now also more fine grain control to reimplement gl surface handling logic. This also aims to fix currently broken wayland backend, but instead of patching the broken x11 calls, we simply reuse ozone which does not use x11 for ozone egl. Add webengine-x11 check to handle ozone glx plugin compilation. For ozone egl backend reimplement missing functions. Task-number: QTBUG-65682 Task-number: QTBUG-51631 Change-Id: I8b45c6f4d09a1c703efb12b6452d78ab385371ab Reviewed-by: Jüri Valdmann <juri.valdmann@qt.io>
* Merge remote-tracking branch 'origin/5.11' into devAllan Sandfeld Jensen2018-06-261-1/+12
|\ | | | | | | | | | | | | | | | | | | Conflicts: .qmake.conf configure.json src/3rdparty tests/auto/widgets/qwebenginepage/tst_qwebenginepage.cpp Change-Id: Id79ff6cf01c2db3a2044881ddcbf044abdf84936
| * Fix mismatch of updated scenegraphs when clippingAllan Sandfeld Jensen2018-06-221-0/+10
| | | | | | | | | | | | | | | | | | Regenerate the tree when different nodes are clipped. Task-number: QTBUG-68699 Change-Id: Ib59a0b92463c47f89b7a6c662abe532fb4130c3c Reviewed-by: Florian Bruhin <qt-project.org@the-compiler.org> Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
| * Fix crash with non-integer Qt scalingAllan Sandfeld Jensen2018-06-061-1/+2
| | | | | | | | | | | | | | | | | | We could end up dropping visible blocks during scrolling if only one pixel line was left and the viewport got rounding one line too small. Task-number: QTBUG-68699 Change-Id: I1ab646f23d8dd4911b32d02df68c80d6a8d78651 Reviewed-by: Michal Klocek <michal.klocek@qt.io>
* | Adaptations for Chromium 67Allan Sandfeld Jensen2018-06-261-2/+7
| | | | | | | | | | Change-Id: I13cedba56012f74651a044d6fa8f0957487bf3eb Reviewed-by: Michal Klocek <michal.klocek@qt.io>
* | Use range-based for instead of Q_FOREACHJüri Valdmann2018-06-061-4/+4
|/ | | | | Change-Id: Ibf016b795ff98fddfa29fb5dc63924a2d2159d71 Reviewed-by: Michal Klocek <michal.klocek@qt.io>
* Pass on mipmap property on layersAllan Sandfeld Jensen2018-04-101-0/+1
| | | | | | | I don't know when it is used, but we have the support, so lets do it. Change-Id: I1784ae902598c99c73c651b6929256e36610ed6d Reviewed-by: Viktor Engelmann <viktor.engelmann@qt.io>
* Find and hold mask texture of render passesAllan Sandfeld Jensen2018-04-091-0/+4
| | | | | | | | | | Even if we don't yet implement handling it, we need to hold it to not assert later on it missing from held resources. Task-number: QTBUG-67414 Change-Id: Ic14efba383ba7f1809238768b386b2254fad7121 Reviewed-by: Jüri Valdmann <juri.valdmann@qt.io> Reviewed-by: Viktor Engelmann <viktor.engelmann@qt.io>
* Do not reuse render passes when we have dynamic 3D layersAllan Sandfeld Jensen2018-03-221-3/+9
| | | | | | | | | They can be clipped and culled based on visibility which is a property we do want to support changing. Task-number: QTBUG-67232 Change-Id: I6b670fd84d1e5c18283ea8f4ee1d8e81b94dcd57 Reviewed-by: Michael Brüning <michael.bruning@qt.io>
* Basic adaptations for 65-basedAllan Sandfeld Jensen2018-03-151-5/+5
| | | | | Change-Id: I121b14d6a44e80f5eea4b159c58f7010d472926e Reviewed-by: Michael Brüning <michael.bruning@qt.io>
* YUV colorspace adaptationsAllan Sandfeld Jensen2018-03-151-19/+5
| | | | | | | | Switch to using Chromium's Colorspace class and its generated shader code instead of our own enums. Change-Id: I89ee96adf68e2421efa2350cb0b78ce0fea7221f Reviewed-by: Michael Brüning <michael.bruning@qt.io>
* Adaptations for Chromium 63Allan Sandfeld Jensen2018-01-251-60/+60
| | | | | Change-Id: I551c7091bbc0463bed94180313eb2bfe92f0ad84 Reviewed-by: Peter Varga <pvarga@inf.u-szeged.hu>
* Adaptations for Chromium 62Allan Sandfeld Jensen2018-01-251-17/+17
| | | | | Change-Id: I49cd3c419d4dd1180144c3c07bdd9a628ab73caa Reviewed-by: Peter Varga <pvarga@inf.u-szeged.hu>
* Merge remote-tracking branch 'origin/5.9' into 5.10Allan Sandfeld Jensen2018-01-081-1/+1
|\ | | | | | | | | | | | | | | | | | | | | | | Conflicts: .qmake.conf src/core/api/qwebengineurlrequestjob.cpp src/core/browser_context_adapter.cpp src/core/renderer/user_resource_controller.cpp src/core/web_engine_context.cpp src/webenginewidgets/api/qwebenginepage.cpp Change-Id: I5278e5e22e1776d42975fc94d70ff8ca4f81fb9a
| * Fix QSGSoftwareLayer renderingJüri Valdmann2017-12-131-1/+1
| | | | | | | | | | | | | | | | Software layers (added in qtdeclarative 5.8) also need updating. Task-number: QTBUG-62867 Change-Id: If7a941d7e360871822e1776cde3845abcb1f7efa Reviewed-by: Michael Brüning <michael.bruning@qt.io>
* | Stop creating image nodes without texturesJüri Valdmann2017-11-271-19/+7
| | | | | | | | | | | | | | | | | | Triggers segfault when using software backend. Task-number: QTBUG-64562 Change-Id: Ib7c55c8480cbccd5a546813d84021b57bb02d067 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io> Reviewed-by: Michael Brüning <michael.bruning@qt.io>
* | Reduce the amount of thread switches needed for fetching texturesAllan Sandfeld Jensen2017-11-261-7/+42
| | | | | | | | | | | | | | | | | | Combine multiple texture fetches into a single sync call on another thread. Change-Id: Id372d5a11290105b36b34a4fc56bff9929304c20 Reviewed-by: Jüri Valdmann <juri.valdmann@qt.io> Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* | 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