| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
On rare occasions, it seems to be possible for the texture to be used
after deletion, which results in crashes in pixmap() after casting.
Rather than storing a raw pointer, wrap the texture in QPointer to
avoid the stale pointer accesses.
Task-number: QTBUG-80415
Change-Id: Ia0ee556f4a3a4eee777ca14065635f4bc5f90da2
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
(cherry picked from commit 1c010b202506bb7eb0f0e24ab37ad50e319abada)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
|
|
|
|
|
|
|
| |
This ports all of QtDeclarative.
Change-Id: Ie6eb4d96b4d49fbed1e8be514d03e331549cd712
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
For large scale text, the default distance field size gives
artifacts on certain font features. We already have an environment
variable which overrides this on an application level, but this
will cause all distance fields to be rendered at the high resolution,
whereas you may just want it for one particular text field.
Since this becomes an especially important use case now that we can
embed the text fields in a 3D scene, we add a property which can
be used to tweak the base font size used for generating the
distance fields.
[ChangeLog][QtQuick][Text] Added "renderTypeQuality" property, which
can be used in cases of very large fonts, where Qt's font rasterization
may show some rendering artifacts when using the default quality.
Fixes: QTBUG-84696
Change-Id: Ie4205e82cf441562dcc65a8e432a941a3baeddf3
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
|
|
|
|
|
|
|
|
| |
Following the pattern from QtGui.
Task-number: QTBUG-85239
Change-Id: I07b4456028d0f45223ad10e55ce65f423bab6a9b
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
|
|
|
|
|
|
|
|
|
| |
This is required to remove the ; from the macro with Qt 6.
Task-number: QTBUG-82978
Change-Id: Iead53d18fd790fb2d870d80ef2db79666f0d2392
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
|
|
|
|
|
|
|
| |
Introduce an autotest case too.
Change-Id: I658b09b6e4e5b30cdc2174fdf21f60adf93e44ff
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
|
|
|
|
|
|
|
|
|
| |
We want to be able to use this enum from the public API, so we move
it out to a suitable public class.
Task-number: QTBUG-84695
Change-Id: I8a3860ecfd0da7990941540bcf39fb0c2bf0ff83
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
One can now do rc->createRenderer(QSGRenderContext::RenderMode3D) in Quick3D.
By default nothing changes, both QQuickWindow and QSGRhiLayer default to
either RenderMode2D or RenderMode2DNoDepthBuffer, depending on
QSG_NO_DEPTH_BUFFER. (the environment variable handling is moved out of
qsgbatchrenderer.cpp however, leaving it up to whoever is creating the
renderer to passing the appropriate flag)
The RenderMode3D mode is a modified version of the QSG_NO_DEPTH_BUFFER case:
only alpha batches are used, which are then rendered back to front. The
difference is that this is done with depth test on (no write), so the
2D content gets depth tested against whatever is already in the depth buffer.
Then, there's an additional depth "post pass" to fill the depth buffer with the
2D content. This must be separate from the color-write enabled stage because
otherwise unavoidable Z fighting would occur. By filling the depth buffer,
other 3D or 2D content, that is rendered afterwards, can depth test correctly
against the 2D elements rendered here.
customRenderMode and related functions are renamed to visualization
(because that's what it is about), in order to prevent confusing name
clashes.
Change-Id: I0d43b273e0a8020af05a652a236c0ad5fb150685
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is not maintained and probably not compatible with QRhi-based
rendering anyways.
Remove it for now.
Task-number: QTBUG-84718
Task-number: QTBUG-84623
Change-Id: I423b45e247c751c94f1407cfb53f056d6ea7a10c
Reviewed-by: Andy Nichols <andy.nichols@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>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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 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>
|
|\
| |
| |
| |
| |
| |
| |
| | |
Conflicts:
src/qmltyperegistrar/qmltypesclassdescription.cpp
src/quick/items/qquickrendertarget.h
Change-Id: I9e24d2252a35b8e74af89ad72af796df658167ca
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
QRawFont::boundingRect() returns the bounding rect of the glyph
as reported by the system. On Windows, this unfortunately
does not always include the antialiasing on the edges when
the ClearType renderer is used (probably for compatibility
reasons, since it matches the rendered size of the 8-bit alphamap.)
Therefore, we have traditionally been applying a margin around
rendering for 32-bit alpha maps, since there is no way to know
for certain the exact rendered size with ClearType.
It is tempting to expose the alphaMapBoundingBox through
QRawFont (either replace the implementation of boundingRect()
or add a new function) to avoid using private APIs here, but since
it is a work-around and we hope the need for it will go away when
we start using DirectWrite instead, it is better to keep it
locked away for now. It is also too late to do such a change in
Qt 5.15, so we can revisit the idea for Qt 6.x.
[ChangeLog][Software Renderer] Fixed a bug where the last column of
pixels in text would sometimes be clipped away.
Fixes: QTBUG-80180
Change-Id: Ic611a80aef3e0e9b9cee0f3a22c9e24f717d5dfe
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
In Qt 5.14 this was a virtual in QSGTexturePrivate due to having had
to maintain binary compatibility. In 6.0 it becomes a pure virtual in
QSGTexture.
Task-number: QTBUG-82997
Change-Id: I26a42169b071fe8d413f5c89ef45850fa7222006
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
|
| |
| |
| |
| |
| |
| | |
Task-number: QTBUG-82997
Change-Id: I236f5dadd8214ed1008ef4a7c9955c6f4c6b43cf
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Main goals of these changes:
1) Add an ability to work with disabled and inactive palettes from QML
2) Eliminate massive code duplication in qtquickcontrols2 module
3) Provide easily extensible architecture for this piece of
functionality
Architectural part.
Palette
It was decided to not change existing QPalette, but add thin wrappers
around it to provide all required functionality. These wrappers are
highly coupled with QPalette class because of using some enum values
from it.
There are two new classes QQuickPalette and QQuickColorGroup.
QQuickPalette class inherits QQuickColorGroup class and represents
Active/All color group. QQuickPalette also provides an access to three
color groups: Active, Inactive, and Disabled.
In order to access colors the special class QQuickPaletteColorProvider
is used. This is a wrapper around QPalette that provides some
convenience functions.
Interface
The private property "palette" should be exposed.
Implementation
All private parts of classes that implement
QQuickAbstractPaletteProvider have to inherit
QQuickPaletteProviderPrivateBase class. This template class implement
all functionality: create palette, resolve dependencies, connect objects
etc. This is important to mention that related data is lazily
allocatable on demand only. Hence, there is no memory overhead for
regular items.
Change-Id: I911424b730451b1ad47f68fd8007953b66eddb28
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
|
| |
| |
| |
| |
| |
| | |
Task-number: QTBUG-79925
Change-Id: Id3f0a688f47efaf1653c85d23ef49618ed09c931
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
|
|\|
| |
| |
| | |
Change-Id: Id41f415227f07bb9da8fafc676f4d22ce75544e3
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This adds Q_TRACE tracepoints for all places that are covered by
the QML profiler's QSG integration. The big advantage over the
existing framework is that these trace points can be visualized
next to other system tracepoints to correlate the data better with
load and resource consumption induced by other processes on the
system.
Change-Id: I0c5b70a0870f0b89e4533c351c099e13fd18a55f
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
|
|\|
| |
| |
| |
| |
| |
| | |
Conflicts:
src/qml/types/qqmlbind.cpp
Change-Id: Ib992d1a7ac6c1a96d39819be6f23955dc31b44b2
|
| |
| |
| |
| |
| |
| |
| | |
Amends 744e77b841878fb017c0f2d60607090008f28180.
Change-Id: I16e37aaf503eb62f67fca0e48be4c92c4a72ae46
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
|
|/
|
|
|
|
|
|
|
|
| |
Commit 7d983077 removed the getter for the renderableNodes that was
added with commit ce831a4b, as it "appears unused". It is though used by
GammaRay. This commit readds the API, this time including a short
comment about the usage by GammaRay.
Change-Id: I06d107a959c587f49389ac356a60ab7ffd79d00d
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
|
|\
| |
| |
| |
| |
| |
| |
| | |
Conflicts:
src/plugins/scenegraph/openvg/qsgopenvgcontext.cpp
tests/auto/quick/qquickpathview/tst_qquickpathview.cpp
Change-Id: I117c8d62b21800329d1035021d312d9924f83a1b
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
When a QSGSpriteNode is initialized with a texture, it is supposed to
take ownership of the texture and delete it when the node gets
deleted. In the default backend, this happens automatically: The
texture gets assigned to the node's QSGMaterial object, and the node
has set the OwnsMaterial flag, and so the inherited QSGGeometry
destructor takes care of deleting the material, which deletes the
texture.
However, the Software and OpenVG backends do not have material
objects, so the above mechanism does not apply, and so the texture
objects are leaked. Fix by deleting the texture object directly from
the SoftwareSpriteNode and OpenVGSpriteNode destructors.
Fixes: QTBUG-77019
Change-Id: I503d704f66593ba6a36c969db80f74f715382b6b
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
There are ways to close the window without hitting the code paths in the
render loops that delete the animation controller. Probably if no frame
was ever rendered.
Change-Id: If3e9d2051525c4ff50eda19084c967578fe4f4b0
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
| |
| |
| |
| |
| | |
Change-Id: I505ba09d6a0144f18bf29cda2f549c8b69ada1a5
Reviewed-by: Christian Strømme <christian.stromme@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Opt in via environment variables:
QSG_RHI=1 -> enable using QRhi instead of GL
QSG_RHI_BACKEND -> set to vulkan, metal, d3d11, gl to override the default
(the default is d3d11 on Windows, metal on Mac, gl elsewhere)
Or force a given rhi backend via the existing
QQuickWindow::setSceneGraphBackend().
Otherwise the default behavior is the same as before, the rhi code path
is never active by default.
-no-opengl builds are supported in the sense that they work and default
to the software backend. However, the rhi code path cannot currently be
used in such builds, even though QRhi from qtbase is fully functional
with Vulkan, D3D, or Metal even when qtbase was configured with
-no-opengl. This cannot be utilized by Quick atm due to OpenGL usage
being all over the place in the sources corresponding to the default
backend, and those host the rhi code path as well. This will be cleaned up
hopefully in Qt 6, with the removal all direct OpenGL usage.
Other env.vars.:
QSG_RHI_DEBUG_LAYER=1 -> enable D3D debug or Vulkan validation layer
(assuming the system is set up for this)
QSG_RHI_SHADEREFFECT_DEBUG=1 -> print stuff from ShaderEffect
QSG_SAMPLES=1,2,4,... -> MSAA sample count (but QSurfaceFormat works too)
QT_D3D_ADAPTER_INDEX=0,1,... -> D3D adapter index
QT_VK_PHYSICAL_DEVICE_INDEX=0,1,... -> Vulkan physical device index
QSG_RHI_UINT32_INDEX=1 -> always use uint index data (both
merged/unmerged, convert when needed - with some rhi backends this is
implicit)
QSG_RENDER_LOOP -> to override the render loop as usual. The default
with RHI is threaded for Metal, threaded for Vulkan on Windows, basic
for Vulkan on Linux and Android (to be checked later), while the existing
rules apply for OpenGL.
Not supported when running with QRhi:
- particles
- compressed atlases (though this is transparent to the apps)
- QSGRenderNode
- QQuickRenderControl
- QQuickFramebufferObject
- certain QQuickWindow functionality that depends directly on OpenGL
- anisotropic filtering for textures
- native text may lack some gamma correction
- QSGEngine applicability unclear
- some QML profiler logs may be incorrect or irrelevant
Change-Id: I7822e99ad79e342e4166275da6e9e66498d76521
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
|
|\|
| |
| |
| | |
Change-Id: I71b1212085da85f03f4ff0e3ee5cb56a401998ae
|
| |\
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Conflicts:
.qmake.conf
src/imports/sharedimage/qsharedimageloader.cpp
src/quick/items/qquickitemviewfxitem_p_p.h
Change-Id: I12ce7c32788f4a394188a934e689b4ebac78138b
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
We need to repaint everything on devicePixelRatio change,
like we do on size change.
Task-number: QTBUG-66810
Change-Id: I6b2c2ae92335a0aca731a4b0e7621cf7d08881e3
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
|
|/ /
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
In both cases, the container holds pointers, so stability of
references can be ruled out as a cause for using linked lists. Both
containers are also only ever appended to and then consumed, so there
are no insertions in the middle that a linked list may speed up. Last,
it also cannot be the sheer size of the container, as QLinkedList has
3x the memory consumption of a vector.
We conclude that none of the things that make QLinkedList a container
of choice apply here, so we can use a QVector instead.
In QSGAbstractSoftwareRenderer, there was an accessor for the linked
list member, but it appears unused, so was removed.
Change-Id: I273f89c0d1267444019088371a5eb0b3b32a763c
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
|
|/
|
|
|
|
|
|
|
|
|
| |
Replace by QTransform, fixing:
scenegraph/adaptations/software/qsgsoftwareinternalimagenode.cpp: In member function ‘void QSGSoftwareInternalImageNode::paint(QPainter*)’:
scenegraph/adaptations/software/qsgsoftwareinternalimagenode.cpp:477:43: warning: ‘void QPainter::setMatrix(const QMatrix&, bool)’ is deprecated: Use setTransform() instead [-Wdeprecated-declarations]
painter->setMatrix(transform, true);
Change-Id: I6e4047ee9c1a49ea6e0a445c8de281e049823902
Reviewed-by: Christian Ehrlicher <ch.ehrlicher@gmx.de>
|
|\
| |
| |
| | |
Change-Id: If18e582a7210dae046426d97af530ab7ef47ddf4
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
QQuickStyleItem1::updatePaintNode assumes every instance of
QSGNinePathNode (QSGSoftwareNinePatchNode for software backend)
to own new texture object on setTexture. Instance of
QQuickAnimationController is also assumed to be deleted by
render loop on window destroy.
Fixes: QTBUG-69290
Change-Id: Ibd22229108c986c1c115600280482cea01bf4160
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| | |
It shouldn't be needed and produces tiling gaps
Change-Id: I3c7bbc91e5e618bdb111ddf18412acac253f2c6e
Task-number: QTBUG-71322
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
|
| |
| |
| |
| |
| | |
Change-Id: I95ae475cfbab432e3ac4d49384d4861185d3cb1b
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| | |
QSGSoftwareInternalRectangleNode does not check size of the border QPixmap
and always generates the new one.
Change-Id: I24d5917252ae310238417cc01935b9471992e1c8
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| | |
This worked in OpenGL but not in software mode as the combination is
not recognized.
Change-Id: Ic44d1506d7cb2281f268325207a03ea1254b43a0
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
It is not enough to call QGlyphRun::boundingRect() to determine the true
bounding rect of a series of glyphs. This issue would manifest itself
when rendering italic text. Now we calculate the bounding rect for a
QGlyphRun when they are changed in the node so that that the clip rect
for glyphnodes reflect what is set on the node.
Task-number: QTBUG-68085
Change-Id: I834a7312052c8c5a4ad62f28333108c051d7f7b8
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This partially reverts commit a7472867f407f1226d82aa7bce4cd4d6f9bd652f
and merely excludes the threaded render loop of the software renderer.
Task-number: QTBUG-70422
Change-Id: Id56a3fc12a3601cb3bce8be35e201d772988ae23
Reviewed-by: Lorn Potter <lorn.potter@gmail.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The integer version of devicePixelRatio cannot handle fractional ratios
and will lead to arithmetic exceptions for ratios between 0 and 1.
Change-Id: I4a06a12742fa85e6d2f0e24193ae796dec7e2f15
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
|
|\|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Conflicts:
src/qml/qml/qqmltypeloader.cpp
src/qml/qml/qqmltypeloader_p.h
Done-with: Simon Hausmann <simon.hausmann@qt.io>
Task-number: QTBUG-68091
Change-Id: I7c0ab3c9446ac50da07b58f54e24eb4587f7f28c
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
We have to correct for the fact that sub-rects of images in QPainter
are in source coordinates.
Change-Id: I457527b4ff7c1df5f6b662c3ed4d690e05efb4fb
Task-number: QTBUG-40366
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
[ChangeLog][QtQuick] Added support for horizontal gradients in
Rectangle.
Change-Id: I4feee8ec93d9fe75a9f91a7afbe33c8d4756cedb
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
Reviewed-by: Robin Burchell <robin.burchell@crimson.no>
|
|\|
| |
| |
| | |
Change-Id: I280d42b8926c0cada1f35d322b80aaf2b0ef0a73
|
| |
| |
| |
| |
| |
| |
| | |
Change-Id: I472f61241d1875daf0de0a597bf27c019314f48f
Task-number: QTBUG-50119
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
|
|\|
| |
| |
| | |
Change-Id: I50759e6601b02f87e07083a64fca23e0f4e23ca7
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Fix three separate issues:
1. It was possible that the QSGSoftwarePixmapRenderer's
background image's rectangle was set to a non-normalized
rectangle. That would have led to the damage area detection
creating an empty QRegion for the damage area and
QQuickItem::grabToImage would grab an empty image.
2. The QSGSoftwarePixmapRenderer was rendering the image vertically
mirrored compared to what its equivalent in the OpenGL backend
was doing. Therefore QSGLayer::grab was vertically mirrored, too,
so QQuickItem::grabToImage would grab a mirrored image, too.
Additionally QSGSoftwareInternalImageNode (used by
QQuickShaderEffectSource) now has to mirror its internal texture
if that one is a QSGSoftwareLayer.
3. QSGSoftwareInternalImageNode (used by QQuickShaderEffectSource)
was not updating correctly when mirroring (with the fix for 2
also in case of a QSGSoftwareLayer as texture).
Related to QTBUG-63185 and QTBUG-65975.
Change-Id: I0d0ead7fb1c839a8ff427ff7881d8a881e538409
Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
|