| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
| |
Uniformly use <...> and sort them by modules.
Change-Id: I11cd160783dfb141d8824d635bdc56a63aaee50f
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
| |
Change-Id: I289e92237d9378dbc38597e0e9aac2f8038a7beb
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
| |
Change-Id: I1e91f530ac0814329f67f0f6af1ef5b422e47dec
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
|
|
|
|
|
|
|
| |
This avoids the warnings on conversion to QChar.
Change-Id: Ib774f24592d6f09a531c60bb6fa6e5bdbec88120
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
|
|
|
|
|
|
| |
Fixes: QTBUG-84059
Change-Id: Id70c043f96e9525a5a6053efbf99c5ea3408da65
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
...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>
|
|
|
|
|
|
| |
Task-number: QTBUG-79268
Change-Id: Ie7240fe7de4fcd73be65c8afec3466189d7d3f9a
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
| |
They're unnecessary and will break if QPair becomes std::pair.
Change-Id: Ie52acf14fa8cbc36f74ef2ca0ebcbc1a0dbaf5db
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
| |
Change-Id: Ic46382263c3b12d3b4d158d6e269192508d01924
Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
| |
Task-number: QTBUG-79268
Change-Id: I16123a8a49d17e3ffdd5cbcfbebcd8bfa46e648c
Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
|
|
|
|
|
|
|
| |
Task-number: QTBUG-84026
Task-number: QTBUG-79268
Change-Id: Ie2e738891843d8d4e368fbf5e4aa07cc03236724
Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
| |
Task-number: QTBUG-84492
Pick-to: 5.15
Change-Id: Ieeec677634fb6d2f43ba1aeb3432a60cd5502894
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
|
|
|
|
|
|
|
| |
ifdef code that is not available without opengl.
Change-Id: I200e95e4bcf1ee361e84819454eade0bbcbd6669
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
|
|
|
|
|
|
|
| |
Fix build without opengl after argument was renamed.
Change-Id: I67be1bb0918e60b5b07278f026bf89b52a7c3beb
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
| |
Change-Id: I0bc2cbce373febcb9073f15067eebbc1723462ba
Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
|
|
|
|
|
| |
Change-Id: Ic8a1fb49d39c97b3191242241e1a327d5ce0ecb6
Reviewed-by: Liang Qi <liang.qi@qt.io>
|
|
|
|
|
| |
Change-Id: Ifca349d61fd6b60cfe520e3bd7c7b7de78cc30cb
Reviewed-by: Liang Qi <liang.qi@qt.io>
|
|
|
|
|
| |
Change-Id: Ifd1526da4a792e783e47fc7bb952bdb188a6e5c1
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
|
|
|
|
|
|
| |
Pick-to: 5.15
Change-Id: I3c66cb52b435a891d88a5e1c9d1db155d63e2481
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
|
|
|
|
|
|
|
| |
Same procedure as Qt Base's modules / plugins.
Change-Id: I0fa86c2d137ba1abdd5c156f435d078e4f56ac8d
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
|
|
|
|
|
|
|
| |
This avoids issues with some special characters and spaces.
Change-Id: I79e95e75a4c1f0bf554811ebd3d2636912a3858c
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
| |
It had a typo.
Task-number: QTBUG-84403
Change-Id: Icee656e48f3acfd0d8c28dc1aa0083d2b662fd48
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
| |
Includes
- new example installation paths
- one case of QT_QMLTYPES_FILENAME addition
Change-Id: I24423da9b04b6ecc8445017fa35f148dd43b1829
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
|
|
|
|
|
|
|
|
| |
Includes
- A bunch of TARGET_DESCRIPTION
Change-Id: I6acfe05187afbdd45cf7e1bf8634f1554a51c791
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
| |
Change-Id: I42639421258b62896b74dc4ae1c0fdfb200c83ff
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
|
|
|
|
|
|
|
|
| |
Mostly by avoiding custom functions when the compiler generated ones
work just fine
Change-Id: If8152fd24c9084bd85be3741fc218709e50fc375
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
|
|
|
|
|
|
|
| |
Task-number: QTBUG-76025
Change-Id: I952afdad6410c3f7ccb05b6c3de77020b30f78d3
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Reviewed-by: Maximilian Goldstein <max.goldstein@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
| |
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>
|