Replace the current license disclaimer in files by
a SPDX-License-Identifier.
Files that have to be modified by hand are modified.
License files are organized under LICENSES directory.
Pick-to: 6.4
Task-number: QTBUG-67283
Change-Id: I63563bbeb6f60f89d2c99660400dca7fab78a294
Reviewed-by: Shawn Rutledge <shawn.rutledge@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>
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>
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>
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>
The original choice was int, simply following textureId(). This was later
deemed insufficient: instead of a GLuint, the value is now often a 64-bit
value (on 64 bit systems), based on a pointer, since the identity of a texture
in the RHI world is the QRhiTexture* itself. In a custom texture implementation
it is likely that the value here is the value of a native object handle, either
a pointer or some 32 or 64 bit integer.
Inspired by the recent QSGTexture::NativeTexture struct change (void* -> quint64),
switch to a qint64 which is big enough to hold all these without truncation.
We choose a signed value here, in order to allow for the following pattern that
is widespread in material compare() implementations:
if (qint64 diff = m_texture->comparisonKey() - other->texture()->comparisonKey())
return diff;
Fixes: QTBUG-83769
Change-Id: I8bdae8cd835282358ded53b3703142b8f26e4400
Reviewed-by: Christian Strømme <christian.stromme@qt.io>
And port the graph example to QSGMaterial and the RHI. We will not anymore add a
direct OpenGL path (that would mean using QSGMaterialShader) for the example because
the upcoming purge renders that useless anyway.
Task-number: QTBUG-82988
Change-Id: I137575ed5df45b6bfc34a11d73dc5100945081c5
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
To get latest qtbase dev integrated in qt5 dev again without
qtdeclarative 5.10->dev merge.
Change-Id: I6905649aca2b06302df8cee2f660f1f92398d36a
Reviewed-by: Erik Verbruggen <erik.verbruggen@qt.io>
(cherry picked from commit ee00fa01dc)
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
Coverity (CIDs 161677, 161674) caught us setting a bad example in our
example code.
Change-Id: I395f689586f9a6ad783328b9258096cbc9ccd692
Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
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: I61120571787870c0ed17066afb31779b1e6e30e9
Reviewed-by: Iikka Eklund <iikka.eklund@theqtcompany.com>