| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
| |
Including moc files directly into their classes' TU tends to improve
codegen and enables extended compiler warnings, e.g. about unused
private functions or fields.
Pick-to: 6.3 6.2 5.15
Task-number: QTBUG-102948
Change-Id: Ifd2eff233a07bf8e5b42f46b8658caa56bf0e58c
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
|
|
|
|
|
|
|
|
|
|
|
| |
It's high time we do this. We should not clobber the global namespace
with type registration functions if the user has explicitly provided a
namespace for Qt.
Change-Id: Ibac49cb1c8976e65ea15d7a07d25ea1a5325a60a
Reviewed-by: Andrei Golubev <andrei.golubev@qt.io>
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
|
|
|
|
|
|
|
| |
Task-number: QTBUG-94446
Change-Id: Ib8e773f97fca0d296752fd006062b5841dfd5662
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
|
|
|
|
|
|
|
|
| |
Remove usages of outdated LGPL3 header that references LICENSES.LGPLv3
instead of LICENSES.LGPL3.
Change-Id: If7a90ec18331a68491c5a740f131a5e7b3f37df4
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
|
|
|
|
|
|
|
|
|
| |
Replace the hardcoded cpp exports with a generated one where it's
applicable.
Task-number: QTBUG-90492
Change-Id: I4af021bf828e05c8d6f3f975befd3b6b2cf63462
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
| |
If a color is not the rgb format, when QColor::red() QColor::blue()
QColor::green() is used continuously to obtain the values of different
channels, three times color conversions will occur. Therefore, use
QColor::toRgb() before that to ensure that only one conversion is
performed at most. Not only rgb, the conversion of other formats is the
same.
Change-Id: Ia969e1ca6f1524ad5d7e8dec915bcbc407875c66
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
|
|
|
|
|
|
|
|
|
|
|
| |
GHS linker optimizes away QML type registrations despite volatile.
To prevent this we add #pragma ghs reference(s) to avoid such linker
optimization.
Task-number: QTBUG-94846
Pick-to: 6.2
Change-Id: I6ae2d350e532d2035c300a024cb000014293e1a0
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
Rename internal modules to adjust their name to the internal module
policy.
Pick-to: 6.2
Task-number: QTBUG-87775
Change-Id: I99cbc1214c6f0a9085e921df6225768fd55f5b89
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The existing CMake API for qml modules had a number of
shortcomings. Refactor it to achieve the following:
- Clearly separate public and internal aspects.
- Re-use code from qtbase for adding plugins and module
targets rather than reimplementing close variations.
- Provide more robust and complete support for qmllint,
qmlcachegen and automatic generation of qmldir files.
- Reduce the steps needed for more common scenarios.
- Encourage the use of separate backing library and plugin
targets.
- Automatically generate the plugin class .cpp file where
possible.
- Specify .qml files directly through qml-specific API
elements rather than assuming they can be extracted
out of a set of resources.
[ChangeLog][QtQml] The qml CMake API has changed from 6.1
and is now out of Technical Preview status. The most
notable change is that .qml files should no longer be
specified as resources, there is dedicated handling for
them in the qt6_add_qml_module(). A related change is
that the qt6_target_qml_files() command has been replaced
by qt6_target_qml_sources(). More complete integration
with qmlcachegen, qmllint and qmldir generation is also
part of the CMake API.
Fixes: QTBUG-91621
Task-number: QTBUG-82598
Task-number: QTBUG-88763
Task-number: QTBUG-89274
Task-number: QTBUG-91444
Change-Id: I25aae1b0e89890394dfe2ba2824008164b2ca8d9
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
|
|
|
|
|
|
|
| |
Match the enum order/values of QGradient.
Change-Id: I347d6bb782fb91358078b8b5aaf0a72e683a9905
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
|
|
|
|
|
|
|
|
| |
We now generate metatypes by default and every instance of GENERATE_METATYPES now causes a warning.
Change-Id: Id81f66eb8b0b7cc9475fd9978ebe374a59ab7b63
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
Since this is no longer supported, it is removed from the docs
Pick-to: 6.1 6.0
Change-Id: Id23716594e6ea9fd3d05d88a2586d380d1db09db
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
Reviewed-by: Nico Vertriest <nico.vertriest@qt.io>
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
|
|
|
|
|
|
|
|
|
|
|
| |
Use PROJECT_VERSION instead of CMAKE_PROJECT_VERSION, so that the
repo project version is used in a top-level build, rather
than the version of the qt5 project.
Pick-to: 6.1 6.0
Task-number: QTBUG-92861
Change-Id: I5a7a09baf81353558e512800746ac24e8e8b9a47
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
|
|
|
|
|
|
| |
Task-number: QTBUG-81525
Change-Id: Ia2d2d706ab73e52e19129caf4e5a88a2ae5499c6
Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
|
|
|
|
|
|
|
|
| |
Mark plugin as optional and move out initialization code as to allow use with
the QML compiler.
Change-Id: I4c93168ebd42b6625fbf4c045beac4dcf41aafa6
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
|
|
|
|
|
|
|
|
|
| |
Remove all qmake project files, except for examples which are used to
test that qmake continues to work.
Change-Id: Ic4abb72dc2dcd75df7a797c56056b6b3c5fe62ac
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
An alpha of 0 removes the scenegraph node for the fill. If the alpha
changes to non-zero afterwards, the geometry needs to be regenerated.
Pick-to: 6.0 5.15
Fixes: QTBUG-85103
Change-Id: I180b9eb78bd98b99bc87c4d960108b95eb6ae723
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
|
|
|
|
|
|
| |
Pick-to: 6.0
Change-Id: Ie81bc6504cb79fbfe30d552a85016f5acf0ff6f3
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
|
|
|
|
|
|
|
|
|
|
|
| |
-recommend using the import statement without versions for Qt 6.0
-update use of \qml snippet without \QtMinorVersion
-some language change to be neutral about versions
Task-number: QTBUG-87155
Pick-to: 6.0 6.0.0
Change-Id: I3ac44f93aab3086c1a49de79ecc677beb4ef9180
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
-recommend using the import statement without versions for Qt 6.0
-update use of \qml
Task-number: QTBUG-87155
Pick-to: 6.0 6.0.0
Change-Id: I555d582a13006c5abb6dc1e0266d2987ba79c6d8
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
|
|
|
|
|
|
|
|
| |
Modify special case locations to use the new API as well.
Task-number: QTBUG-86815
Change-Id: I3b964e3baf0cc7040830156dac30358ea1152801
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
|
|
|
|
|
|
|
|
| |
As documented in Qt 6 porting guide, qHash() should now also
accept a size_t as seed in addition to returning it.
Change-Id: I2b3ea26f631203468c071fa6ff65f95d82566132
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
| |
Shapes has an unusual setup where changing properties (or properties
of the Path objects) does not lead to calling update() on the Shape
item. That's why it was done in updatePolish() but that can be made
less heavy by only doing it when the shape found that something got
changed.
Task-number: QTBUG-86089
Change-Id: I74f708a960a29f26eb003ac160d2b1258b9ae50f
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
|
|
|
|
|
|
| |
Pick-to: 5.15
Change-Id: I2230e2dcb7bc2497b5dbe71a22c21d84176b5e57
Reviewed-by: Samuel Gaist <samuel.gaist@idiap.ch>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Also includes stripping the shaders properly. While we do not have debug
information, we do have OpName and similar that describe the variable and
block member names. This is unnecessary in the final SPIR-V binary, and further
reduces the size somewhat.
To create debuggable shaders (for SPIR-V and D3D) with full source information,
one needs to regenerate the relevant ones with -g instead of -O.
Change-Id: I3b855ee4e9afe393cd460407c1a807d6c9c5e6c2
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
Accelerated graphics is now possible without OpenGL support. With
this change, a Qt build with -no-opengl can still run Qt Quick with
a Vulkan, Metal, or Direct3D backend.
Fixes: QTBUG-84027
Change-Id: Ib63c733d28cfdf7de16b138df136fa7628e1747b
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
For perspective transforms, we need to find the sample
range in the glyph cache per pixel. We can do this by
getting the gradient of the distance field at the
specific pixel.
This will ensure proper antialiasing with any
projection, but has the limitation that when glyph contours
become thinner than a pixel, they may disappear or become
too emphasized, because the hardware-gradient - based on
neighbouring fragments - is not reliable at that scale.
So we should only default to this when we detect that the
text is child of a 3D scene.
To make this smooth, we need to know the mode of the renderer
when creating the shader. So QSGMaterial::createShader()
now takes a render mode that we can use to customize behavior
based on whether it is rendering into a 2D or 3D scene.
[ChangeLog][QtQuick] The QSGMaterial::createShader() virtual
function has been extended to take a render mode argument,
which can be used for any customizations needed in the case
where the shader will be used in combination with 3D perspective
transformations.
Fixes: QTBUG-84695
Change-Id: I5a18a4edbdfa07e8f9d506c42bb20e8eb580927d
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The QSGTexture API is now clean, the OpenGL-specific functions are
removed.
Docs are to be updated in a separate patch.
QSGPlainTexture, and a number of texture related places have to follow
suit.
The OpenGL atlas texture implementation is now removed.
Task-number: QTBUG-84717
Task-number: QTBUG-84623
Change-Id: I1aab3b8b9145bb74ad39ef836ce540fc851292c5
Reviewed-by: Andy Nichols <andy.nichols@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>
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Add the -c argument when invoking qsb. The scripts are batch files
already so they imply being run on Windows. With a standard VS prompt
one gets fxc in the PATH too so we can let qsb invoke it.
The result is that the built-in materials' qsb files do not contain HLSL
source code anymore, rather they have the intermediate format with
bytecode (conceptually this is like SPIR-V). So at run time there are
no calls to d3dCompile() anymore when these shaders are involved.
What does this mean in practice? With a few select examples:
shapes, opening the Gallery view - before: 80 ms spent on HLSL source
compilation - after: 0 ms.
imageparticle, opening the first 3 views - before: 166 ms spent on HLSL
source compilation - after: 0 ms
shadereffects - before: 77 ms spent on HLSL source compilation - after:
29 ms (because this has custom shaders that still ship HLSL source)
Long term this can hopefully be folded into qsb's to-be-implemented build
system integration, so that it can automatically invoke the appropriate
shader compiler on Windows and macOS. But for now we just do it manually
and check in the regenerated .qsb files.
Fixes: QTBUG-84268
Change-Id: Ibe2f80f99b3e52d5eb5eb808ea103cc766d22c04
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Use a more descriptive name, commitTextureOperations() in order to avoid
confusion with QSGDynamicTexture::updateTexture() which has nothing to
do with this.
With this the QSGTexture interface has all 5.14 pending changes done
(changes that were plumbed via ugly hacks due to having had to deal with
binary compatibility). The awful enforcing of subclassing QSGTexturePrivate
for each and every QSGTexture subclass is now eliminated.
Purging the direct OpenGL code path will involve removing QSGTexture functions
like textureId(), bind(), updateBindOptions(). With this patch we now we have all
the equivalents (or, in some cases, spiritual successors) in place.
Task-number: QTBUG-82997
Change-Id: I7a831f982070c52abc7a36604130a1110d14ff9c
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
| |
We need to either ensure the context is destroyed before the offscreen
surface, or make sure the context is not current (and so the surface is
not associated with it anymore) when it is destroyed. We choose the
latter here.
Change-Id: If4424b98c4d8a718aa49d99285360ded6a5e128e
Fixes: QTBUG-82371
Pick-to: 5.15
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
|
|
|
|
|
|
|
|
| |
Else on Windows there's a warning:
conversion from 'size_t' to 'uint', possible loss of data
Change-Id: Ifed4899409a13fed31c206ae1e0f195280ee2925
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|
|
|
|
|
| |
Change-Id: If8daa6152a563d4309d7342414780ef75b9f5589
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
Reviewed-by: Leander Beernaert <leander.beernaert@qt.io>
|
|\
| |
| |
| |
| |
| |
| |
| | |
Conflicts:
dependencies.yaml
src/qml/qml/qqmlengine.cpp
Change-Id: I6a73fd1064286f4a2232de85c2ce7f80452d4641
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Bump all the *.15 versions to QT_VERSION and use QML_IMPORT_VERSION
rather than IMPORT_VERSION.
Change-Id: I5bfbc960d119a7386bdcedb9bdbfdbfa4486a187
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
| |
| |
| |
| |
| | |
Change-Id: Id72fbe10c16de61bd847773d0055d83cfe03f63c
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
|
| |\
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Conflicts:
src/imports/qtqml/plugin.cpp
src/qml/qml/qqml.h
src/qml/qml/qqmlmetatype.cpp
src/qml/qml/qqmlmetatype_p.h
src/qml/qml/qqmltypeloader.cpp
src/qml/types/qqmlbind.cpp
src/quick/items/qquickitemsmodule.cpp
tests/auto/qml/qqmlecmascript/tst_qqmlecmascript.cpp
Change-Id: I52548938a582cb6510271ed4bc3a9aa0c3c11df6
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Add unused volatile pointers to the type registration functions in each
import plugin. We need to do this in order to prevent the linker from
optimizing the registration away. There are two ways for this to happen:
When linking statically, the linker will examine the referenced symbols
on a per-object base and leave out all unreferenced objects. When
linking dynamically, the linker may do the same on a per-library base
and drop any unreferenced libraries from the dependencies. Forcing a
reference to the type registration function prevents both.
The volatile technique allows us to remove the previous qCDebug() hack.
Having an unused volatile auto variable should only result in a single
memory read as runtime overhead. The qCDebug() technique would generate
a read and a block of mostly dead code (as no one would ever use that
logging category).
Fixes: QTBUG-81622
Change-Id: I255667276dfd355b19baa17b1aad3db406bf1954
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Change-Id: I48d7fd306f3d1b161a8e73029282ee591b1ef612
Reviewed-by: Leander Beernaert <leander.beernaert@qt.io>
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
Reviewed-by: Liang Qi <liang.qi@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | | |
Change-Id: Ifcbab0407e93dfc35d0459d7d29dee2cd3508a86
Reviewed-by: Leander Beernaert <leander.beernaert@qt.io>
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
|
|\| |
| | |
| | |
| | |
| | |
| | |
| | | |
Conflicts:
dependencies.yaml
Change-Id: Ie3e9dc62031a85e5e81cbdf04694b95159d49fca
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
The headers are moving from QtGui to QtOpenGL. By avoiding the
qualification we can keep them compiling either way. Also, add
opengl-private to make the types available.
Also removed the QGraphicsRotation hack to get access to the projected
rotation function of QMatrix4x4. The function is public now.
Task-number: QTBUG-74409
Change-Id: I216e8ca09f8e247f96627b081308e3a57c55c29c
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
|
| |\|
| | |
| | |
| | | |
Change-Id: Icb61522fb41a35303bb3d201b344a0407f67f9a0
|
| | |\
| | | |
| | | |
| | | | |
Change-Id: I88e94fe3398a59f10c5a8b142204db5f3ccb2657
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Uses wavefrontmesh only if the shadereffect feature is there. Path
doesn't need to depend on shadereffect feature only on gui module. The
shape also missed a sgtexture header.
Fixes: QTBUG-81296
Change-Id: I78425ef8a09226b99e9b9f6010dda9dac9009fe5
Reviewed-by: Andy Shaw <andy.shaw@qt.io>
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
|
| | | |
| | | |
| | | |
| | | |
| | | | |
Change-Id: Ic1a1f5ff49c34d72495bc74083f37db118c935c1
Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
|
| | | |
| | | |
| | | |
| | | |
| | | | |
Change-Id: I36254a688f575e6c7f717ee4019e4d49f73a60f7
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
|
| | | |
| | | |
| | | |
| | | |
| | | | |
Change-Id: Ie8aca222809f35174fb6c6488832ec3ff5432272
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
|