aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Remove winrtOliver Wolff2020-06-0419-204/+35
| | | | | | | | | Task-number: QTBUG-84434 Change-Id: If8f57f00726868a3540c877d07fca761618e4f08 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> Reviewed-by: Maurice Kalinowski <maurice.kalinowski@qt.io> Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* Quick: Clean up some includesUlf Hermann2020-06-0413-89/+79
| | | | | | | Uniformly use <...> and sort them by modules. Change-Id: I11cd160783dfb141d8824d635bdc56a63aaee50f Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
* Fix some bugs in the example that was introduced by moving over to QQC2Jan Arve Sæther2020-06-041-2/+12
| | | | | | | | | Most of the bugs was due to moving over to Qt Quick Controls 2, except from the binding we had to explicitly break now. That should probably have been done when we used Qt Quick Controls too. Change-Id: Ic558679802ea35e727eadc570cf299f9da4a3604 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* Quick: Drop some unnecessary semicolonsUlf Hermann2020-06-031-2/+2
| | | | | Change-Id: I289e92237d9378dbc38597e0e9aac2f8038a7beb Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* Port shader effect autotest to RHIPaul Olav Tvete2020-06-0319-194/+138
| | | | | | | | | | The lookThroughShaderCode test function had to be removed, since it does not make sense when the shader code may not be available. Added testConnection() to verify that connections are made. Fixes: QTBUG-84123 Change-Id: I33594367bea97de9ef0d54711b105a33c8a57fa8 Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
* QDirModel is deprecated, don't use it in documentation snippetsVolker Hilsheimer2020-06-032-4/+4
| | | | | Change-Id: I1e91f530ac0814329f67f0f6af1ef5b422e47dec Reviewed-by: Paul Wicking <paul.wicking@qt.io>
* QtQml: Use unicode character literalsUlf Hermann2020-06-0310-250/+248
| | | | | | | This avoids the warnings on conversion to QChar. Change-Id: Ib774f24592d6f09a531c60bb6fa6e5bdbec88120 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* Fix handling of destroy-show and re-enable the zoom test for qmlpreviewLaszlo Agocs2020-06-034-8/+58
| | | | | | Fixes: QTBUG-84059 Change-Id: Id70c043f96e9525a5a6053efbf99c5ea3408da65 Reviewed-by: Andy Nichols <andy.nichols@qt.io>
* Expose the QRhiSwapchain via QSGRendererInterfaceLaszlo Agocs2020-06-036-4/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | ...similarly to how we already do it for the QRhi itself. Just follow the same pattern. This allows Qt Quick 3D to stop peeking directly into QQuickWindowPrivate and accessing member variables in there. Code like the following QQuickWindowPrivate *wd = QQuickWindowPrivate::get(window); QRhiCommandBuffer *cb = wd->swapchain->currentFrameCommandBuffer(); QRhiRenderPassDescriptor *rp = wd->rpDescForSwapchain; can now be written ca. like this, without pulling in quick-private: QRhiSwapChain *swapchain = window->rendererInterface->getResource(window, RhiSwapchain) QRhiCommandBuffer *cb = swapchain->currentFrameCommandBuffer(); QRhiRenderPassDescriptor *rp = swapchain->renderPassDescriptor(); This provides a more stable interface between the scenegraph and Quick 3D. In addition, this is also handy for manual tests, external test applications, etc. in case they do QRhi-based rendering in a QQuickWindow. Now these are also fine with just gui-private, no need to access QQuickWindowPrivate anymore. Change-Id: I921fb1c33c2fc77081272b1f180fdc2c87ed3ab5 Reviewed-by: Andy Nichols <andy.nichols@qt.io>
* Remove QSG_NO_RHILaszlo Agocs2020-06-031-4/+3
| | | | | | Task-number: QTBUG-79268 Change-Id: Ie7240fe7de4fcd73be65c8afec3466189d7d3f9a Reviewed-by: Andy Nichols <andy.nichols@qt.io>
* Fix build issue in generating RegExpJitTables.h on WindowsKai Koehne2020-06-031-1/+1
| | | | | | | | | | | | | | | Do make sure to use backslashes in the absolute path on Windows, otherwise nmake will silently ignore the command. This fixes a regression in Qt 5.15.0, introduced in commit 1c6a70e1880a8 . [ChangeLog][Building] Fixed build issue on Windows when using nmake (RegExpJitTables.h was not generated correctly). Fixes: QTBUG-84497 Pick-to: 5.15 Change-Id: I5acd66b0efb8be13d96edd5e30b692c47ce20fc5 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Remove the template arguments from some qMakePair callsGiuseppe D'Angelo2020-06-033-4/+4
| | | | | | | They're unnecessary and will break if QPair becomes std::pair. Change-Id: Ie52acf14fa8cbc36f74ef2ca0ebcbc1a0dbaf5db Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
* Shader effect property connection optimizationsPaul Olav Tvete2020-06-023-46/+108
| | | | | | | | | | | | | | | Ported from QQuickOpenGLShaderEffect commit 8c745d808527684836d04da9014ee33c7cf8b6f1 - Don't use a signal mapper, but handle the mapping using a custom slot object and a lambda to do the dispatching ourselves. - Don't do meta-calls by property name, but by index. - Cache the meta-object. - Resolve the property indices by using the QML property cache. Task-number: QTBUG-84377 Change-Id: I5c06838dc7e8fab4fca04f9fd7f6838ea5a38eb0 Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
* docs: Clean up some 5.14-era RHI-being-optional referencesLaszlo Agocs2020-06-023-46/+41
| | | | | Change-Id: Ic46382263c3b12d3b4d158d6e269192508d01924 Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
* Enable invoking the scenegraph rendering without a full render passLaszlo Agocs2020-06-026-159/+269
| | | | | | | | | | | | | | | | | | | | | | | | | | Split the monolithic render() and renderBatches() into four steps (prepare, begin-pass, render, end-pass), of which two are optional. The behavior of the batch renderer's render() (the entry point when rendering a Qt Quick scene normally) remains unchanged: it just calls prepare, beginPass, render, endPass which together should boil down to exactly what the monolithic implementation was doing before. However, we can now also support recording rendering of the 2D scene as part of a render pass that is started by something else (e.g. the 3D scene). To enable this, the renderer interface gets prepareInline() and renderInline() virtuals that are only implemented by the batch renderer (and are no-ops by default). These are complemented by prepareSceneLine() and renderSceneInline() which are public (as in the class, not API-wise), like renderScene(). The former does preprocess() and triggers the internal prepareInline(), whereas renderSceneLine() is where renderInline() is called from. The rendercontext has no corresponding wrappers since one can just directly call these on the QSGRenderer. Change-Id: Iddfcec6970bad2bc73e6e8af19fe95d16c6ac9e5 Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
* Remove OpenGL FBO references in QQuickWindow and the renderer APILaszlo Agocs2020-06-0219-307/+34
| | | | | | | | | | | | | | setRenderTarget(GLuint), setRenderTarget(QQuickFramebufferObject*), renderScene(uint fboId), QSGBindable, etc. are now removed. This leads to a simpler and cleaner interface in QSGAbstractRenderer and QSGRenderer because the somewhat weird renderScene() overloading (where one version is virtual, while the other isn't) is now avoided, with just a single renderScene() virtual now. Task-number: QTBUG-84040 Change-Id: I0ce5a159a557688bdfcb7cacf8a9d12d6fd970d1 Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
* Remove layer and dist.field glyph cache OpenGL versionsLaszlo Agocs2020-06-029-1640/+4
| | | | | | Task-number: QTBUG-79268 Change-Id: I16123a8a49d17e3ffdd5cbcfbebcd8bfa46e648c Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
* Remove the direct OpenGL code from the batch rendererLaszlo Agocs2020-06-026-1482/+203
| | | | | | | Task-number: QTBUG-84026 Task-number: QTBUG-79268 Change-Id: Ie2e738891843d8d4e368fbf5e4aa07cc03236724 Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
* Make QSGMaterialRhiShader become QSGMaterialShaderLaszlo Agocs2020-06-02132-7272/+685
| | | | | | | | | | | | | | | | After a symbiotic relationship in Qt 5.14 and 5.15, it is time for QSGMaterialRhiShader to devour its older sibling and take its place. This makes the direct OpenGL rendering path disfunctional. All QSGMaterial Qt 6 TODOs are solved, the API is clean and straightforward again: a QSGMaterial creates a QSGMaterialShader, no special flags and options needed. (it's just that QSGMaterialShader now has a slightly different API) Task-number: QTBUG-79268 Task-number: QTBUG-82997 Change-Id: I545ca8d796c5535e81957c706e7832133be15b7d Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
* Examples: Fix double installation of .qml filesKai Koehne2020-06-025-25/+5
| | | | | | | | | | qt_example_installs.prf already generates install rules for all example sources, including content of .qrc files. Pick-to: 5.15 Fixes: QTBUG-84301 Change-Id: I3454b19849af489c5819c51867781cc97f1eb285 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Remove whitespace for file names generated from TARGETKai Koehne2020-06-021-3/+6
| | | | | | | Task-number: QTBUG-84492 Pick-to: 5.15 Change-Id: Ieeec677634fb6d2f43ba1aeb3432a60cd5502894 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Fix build without openglSamuli Piippo2020-06-022-3/+13
| | | | | | | ifdef code that is not available without opengl. Change-Id: I200e95e4bcf1ee361e84819454eade0bbcbd6669 Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
* Use correct argument nameSamuli Piippo2020-06-021-1/+1
| | | | | | | Fix build without opengl after argument was renamed. Change-Id: I67be1bb0918e60b5b07278f026bf89b52a7c3beb Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
* Remove CustomParticleEirik Aavitsland2020-06-0239-1891/+4
| | | | | | | | | The implementation is intertwined with the direct GL path and not really portable to RHI. Fixes: QTBUG-78574 Change-Id: I6ac8707544c19a24661f07e0e6d2fc405e49cbff Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
* Fix QQuickWidget when RHI is disabledPeter Varga2020-06-021-1/+4
| | | | | | | | | Without this, scenegraph would still use RHI code path even if QSG_NO_RHI=1 is set. Task-number: QTBUG-79268 Change-Id: I189d1da1345c94cf53ba9cc2b15a506c06fff9b1 Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
* Follow QRhi create-destroy API updateLaszlo Agocs2020-06-0214-57/+57
| | | | | Change-Id: I0bc2cbce373febcb9073f15067eebbc1723462ba Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
* Update dependencies on 'dev' in qt/qtdeclarativeQt Submodule Update Bot2020-06-021-2/+2
| | | | | Change-Id: Ic8a1fb49d39c97b3191242241e1a327d5ce0ecb6 Reviewed-by: Liang Qi <liang.qi@qt.io>
* Update dependencies on 'dev' in qt/qtdeclarativeQt Submodule Update Bot2020-05-291-2/+2
| | | | | Change-Id: Ifca349d61fd6b60cfe520e3bd7c7b7de78cc30cb Reviewed-by: Liang Qi <liang.qi@qt.io>
* Enable rendercontrol_d3d11 example in CMake buildsLaszlo Agocs2020-05-292-2/+2
| | | | | Change-Id: Ifd1526da4a792e783e47fc7bb952bdb188a6e5c1 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Fix test to not depend on internal roundingAllan Sandfeld Jensen2020-05-291-1/+6
| | | | | | Pick-to: 5.15 Change-Id: I3c66cb52b435a891d88a5e1c9d1db155d63e2481 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* CMake Build: Ensure right suffix and prefixes for modules / pluginsCristian Adam2020-05-291-0/+9
| | | | | | | Same procedure as Qt Base's modules / plugins. Change-Id: I0fa86c2d137ba1abdd5c156f435d078e4f56ac8d Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* cmake: Quote the arguments to CMD's 'set' commandMårten Nordheim2020-05-291-1/+1
| | | | | | | This avoids issues with some special characters and spaces. Change-Id: I79e95e75a4c1f0bf554811ebd3d2636912a3858c Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* CMake: Don't install .qmltypes for Qt tests, examples and toolsAlexandru Croitor2020-05-2943-43/+0
| | | | | | | | | | | that don't have an explicit QT_QML_MODULE_INSTALL_DIR path specified. We don't want to pollute the Qt qml import path with these files. Task-number: QTBUG-84403 Change-Id: I768267e0e79daa8090d882c301648cce14e1a809 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* CMake: Warn when the qt6_add_qml_module INSTALL_PATH is missingAlexandru Croitor2020-05-291-19/+30
| | | | | | | | | | | | | | | | | | | | If a user uses the public API function to create a qml module, they should also provide the installation path for the qml files, the compiled plugin (if C++ is involved), and the other accompanying files like qmldir. The user can specify the installation path via the INSTALL_PATH option to qt6_add_qml_module. Warn the user when they haven't done so. Also because we can't really guess where to install (we don't want to install into the Qt qml install prefix and pollute the content there), make sure to not install the files somewhere randomly. Task-number: QTBUG-84403 Change-Id: I1d8e9035b07952347f5edf854bf39869d128df4e Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* CMake: Fix qt6_target_qml_files install locationAlexandru Croitor2020-05-291-1/+1
| | | | | | | | It had a typo. Task-number: QTBUG-84403 Change-Id: Icee656e48f3acfd0d8c28dc1aa0083d2b662fd48 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* CMake: Workaround fix to not install example metatypes.json filesAlexandru Croitor2020-05-291-2/+12
| | | | | | | | | | | We should not pollute the Qt install prefix lib/metatypes folder with json files that were built as part of examples. Work around this, by checking if the example qml module has an install path specified, and install there instead. Task-number: QTBUG-84403 Change-Id: I55fab7f4e2b02a74e28cf343a1aeecf59201d7cc Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* CMake: Explicitly require install location for plugin.qmltypesAlexandru Croitor2020-05-291-29/+36
| | | | | | | | | | | | | | If a user doesn't specify an explicit installation path for the plugin.qmltypes file, warn them about it, and make sure not to try and install the file. For internal Qt modules and plugins, we always set the path via the private qt_add_qml_module api call or by specifying the installation path explicitly via the QT_QML_MODULE_INSTALL_DIR property. Task-number: QTBUG-84403 Change-Id: I587fd70f9c767ae26f5268bb8fefc7ea678e170f Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* CMake: Regenerate qtdeclarative/testsAlexandru Croitor2020-05-2917-24/+70
| | | | | | | | | | | | | Includes: - new api calls - some new dependencies - some TARGET_DESCRIPTION - some additional tool directory exclusion when cross-compiling (qmlplugindump) - some missing add_subdirectory calls Change-Id: Iea43e45b94f37367ffc1d8dd6ce0ff1021a31b1a Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* CMake: Regenerate qtdeclarative/examplesAlexandru Croitor2020-05-2979-78/+393
| | | | | | | | | Includes - new example installation paths - one case of QT_QMLTYPES_FILENAME addition Change-Id: I24423da9b04b6ecc8445017fa35f148dd43b1829 Reviewed-by: Cristian Adam <cristian.adam@qt.io>
* CMake: Regenerate qtdeclarative/toolsAlexandru Croitor2020-05-2922-1/+22
| | | | | | | | Includes - A bunch of TARGET_DESCRIPTION Change-Id: I6acfe05187afbdd45cf7e1bf8634f1554a51c791 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* CMake: Regenerate qtdeclarative/srcAlexandru Croitor2020-05-2927-43/+55
| | | | | | | | | | Includes - renaming of internal plugin api call - generation of QT_QMLTYPES_FILENAME - addition of a few TARGET_DESCRIPTION Change-Id: I72b5647b8c16af9945795ead62a075322b6bb2f6 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Fix offset on native text rendering with high-dpi scalingEskil Abrahamsen Blomfeldt2020-05-291-3/+4
| | | | | | | | | | | | | | | | | | | The glyph positions are scaled *after* they have been positioned, so when we subtracted the margin unmodified, we would actually offset by the scaled margin (so for scale factor=2 it would be 2 pixels off, and for scale factor=4 it would be 6 pixels off, etc.) We have to also prescale the margin by the inverse of the scale we will apply later. [ChangeLog][Text] Fixed an offset on text position when combining NativeRendering with high-dpi scaling. Task-number: QTBUG-84454 Pick-to: 5.15 Change-Id: I703aeb7fbd717bee5d88cc61e9a56c6422558889 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* Update to Qt Quick Controls 2Jan Arve Sæther2020-05-291-2/+2
| | | | | | | | Qt Quick Controls will be deprecated in Qt 6 Change-Id: Ifca94d028b3fd71797816a22af4d896fb9ae2be3 Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com> Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* Make the nodes autotest QRhi compatibleLaszlo Agocs2020-05-281-35/+188
| | | | | Change-Id: I42639421258b62896b74dc4ae1c0fdfb200c83ff Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
* Fix -Wdeprecated-copy warningsFabian Kosmale2020-05-285-20/+6
| | | | | | | | Mostly by avoiding custom functions when the compiler generated ones work just fine Change-Id: If8152fd24c9084bd85be3741fc218709e50fc375 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* qmltyperegistrar: Preserve isQProperty flag from metatypesUlf Hermann2020-05-283-2/+14
| | | | | | | Task-number: QTBUG-76025 Change-Id: I952afdad6410c3f7ccb05b6c3de77020b30f78d3 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> Reviewed-by: Maximilian Goldstein <max.goldstein@qt.io>
* Particles: reduce memory allocations by flattening a setGiuseppe D'Angelo2020-05-276-3/+152
| | | | | | | | | | | | | | | | | | | | When an affector acts on a particle, it will add it to a set of "seen" particles. This means an allocation, per particle, per frame. In Qt 6 the problem is less dramatic due to the new QHash implementation, which uses "wider" buckets, but in Qt 5 this is hundreds of memory allocations (and deallocations) per frame. Just reimplement a minimal flat-set API for this use case, and replace the QSet usages with it. On a testcase with 200 active particles, this reduces memory allocations from ~20'000 per second to 0 when the scene is "stable". Pick-to: 5.15 Change-Id: I4be1e12a23b8dffca91955148532db243e383a4c Reviewed-by: Lars Knoll <lars.knoll@qt.io> Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
* Fix a clipping bug in software-rendered textEskil Abrahamsen Blomfeldt2020-05-271-2/+4
| | | | | | | | | | | | | | | | | | | | | | | | | ac179e235ba0c01fff6dd5f4ad2cc9696fe78822 fixed a clipping issue with software rendering and text by using the actual bounding rect of the alpha map (which may be extended to allow for margins around the glyph). But it did not account for the margins on the top and left sides of the glyph, causing QTBUG-84042. By a coincidence, this issue was not reproducible with the DirectWrite engine in Qt 5.15 at the time because of 318a991907b6c08f52786160bafea1e30d3ad9bd in Qt Base, which baked the margins into the top and left positions of the returned bounding rect. But this is not what the other font engines are doing, and caused issues where the margin would be accounted for twice in the output. So 318a991907b6c08f52786160bafea1e30d3ad9bd was reverted. This change shifts the bounding rect by the margins (if any), avoiding clipping on the left and top sides. Task-number: QTBUG-80180 Fixes: QTBUG-84042 Pick-to: 5.15 Change-Id: I942f05f0e8c8eb8c5b3071a73406e3e744b7d5a0 Reviewed-by: Andy Nichols <andy.nichols@qt.io>
* Avoid truncating in QSGMaterial::compare() implementationsLaszlo Agocs2020-05-277-22/+19
| | | | | | | | | | | | The Qt 5.0 pattern of subtracting pointers and returning them is not suitable (on 64-bit archs) since the return type is an int. There is also QSGTexture::comparisonKey() now which is a qint64. Just return -1 and 1 as appropriate. Change-Id: Iaf3377b484a8c4b19b0960f1e8def05e4fa68ce7 Reviewed-by: Christian Strømme <christian.stromme@qt.io>
* Skip d3d rendercontrol example on MinGWLaszlo Agocs2020-05-272-1/+4
| | | | | | | | | | We will not invest into adding workarounds in the example code as the boilerplate to keep such unofficial environments working is not worth the effort and compromises readability in example code. Just skip building on MinGW. Change-Id: If33bd0382f8cab4713ad45fcaa126830e9760af3 Reviewed-by: Liang Qi <liang.qi@qt.io>