| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Qt core gained a new event on the window when the dpr changes.
This is important as the window DPR can differ from the screen device
pixel ratio, it also allows us to get rid of one level of the screen
connection tracking.
Fixes: QTBUG-113236
Change-Id: I43f50a0ef98653553ea177dc72e1522036452496
Reviewed-by: Aleix Pol Gonzalez <aleixpol@kde.org>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
WebEngine during page setup can create and delete
accessibility interface with QAccessible::deleteAccessibleInterface,
which will later on tear down end with a crash as lambda function
is called on non existing object.
In case accessibility interface is deleted do not try to call
repair window.
Pick-to: 6.5
Task-number: QTBUG-108226
Change-Id: Ic052d1b6c9c60168fb32f81134263fc484ee654b
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
QAccessibleQuickWidget delegates all calls to the QAccessibleQuickWindow,
which it had as a member that was initialized at construction time to
the offscreenWindow backing the QQuickWidget. Both are QAccessibleObject
subclasses, and QAccessibleObject stores the object it wraps as a
QPointer. The QAccessibleQuickWindow's object becomes null when that
offscreen window gets destroyed (for instance, when reparenting).
We might get called by the accessibility framework in that situation, as
we are clicking a button and the hierarchy changes.
To prevent crashes, we need to test for nullptr in QAccessibleQuickWindow.
However, that alone would leave us with a useless QAccessibleQuickWindow,
and in turn with a useless QAccessibleQuickWidget instance.
The QAccessibleQuickWindow is not directly exposed to the
accessibility framework, and all calls to it are dispatched through its
QAccessibleQuickWidget owner. We can't repair the QAccessibleQuickWindow
but we can replace it entirely if we manage it as a heap-allocated
object. Use a std::unique_ptr for that, which we can reset with a new
instance created from a new offscreen window in order to repair things.
We can now either test in all functions whether the window's window is
still alive. Or we can handle the destroyed() signal of the offscreen
window. The latter solution is a bit more involved, but generally more
scalable as we don't have to remember to check, and possibly repair, in
each QAccessibleQuickWidget function.
Pick-to: 6.5
Fixes: QTBUG-108226
Change-Id: Ib19c07d3679c0af28cb5aab4c80691cc57c4e514
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Jan Arve Sæther <jan-arve.saether@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The subFocusItem state was forgotten because the old parent was deleted,
before its focused child was reparented.
The test doesn't pass on Android and makes the test process exit with
error. Since it prints warnings that indicate issues further down in
the RHI stack, we'll skip it for now on that platform.
Task-number: QTBUG-112696
Pick-to: 6.5 6.2
Change-Id: Ibb32a11564ff6fbb2091c241d508f12479b234b0
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
While d2f895969938b0a80906e9a91553750bbcb717c9 in qtbase makes sure
that everything is reset on device loss, initializeWithRhi is only
called on next resize or hide/show, so we set deviceLost so it is
recreated on the next frame.
Change-Id: I70bcf753d26e2660fd0f86d8c7b37206100d59c9
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
|
|
|
|
|
|
| |
Pick-to: 6.5
Change-Id: Ib0e2183362b43869885934a8b5f8dd17f0c4ea71
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
A QQuickWidget contains a Quick UI, which can be expected to handle
touch events, and it handles touch events by forwarding them to the
QQuickWindow. So set the AcceptTouchEvents attribute and let the
Qt Quick delivery machinery deal with the touch-mouse synthesis
within the scene.
Also, Qt Quick's event delivery might return event points as ignored
after setting the exclusive grabber. Qt Widgets touch event delivery
logic doesn't care about exclusive grabbers, and relies on the event
points being accepted to make the widget that received the TouchBegin
an implicit grabber. QQuickWidget needs to translate those states back,
so accept all points that come back with a grabber.
Add a test that verifies that a button in a popup gets all events,
and that those events are translated correctly - without the fix,
the "clicked" test fails, as the release is delivered, but with
coordinates outside of the button.
Also test that we can have two QQuickWidgets where each gets one
touch point.
Fixes: QTBUG-101736
Pick-to: 6.5 6.4 6.2
Change-Id: I3a2bf05fd297ae4d72b6e236ecd8e5ddac37ce06
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
To support stereoscopic rendering in QOpenGLWidget using the RHI backend
QWidgetPrivate::texture return type was changed to accommodate the extra
texture required. This patch fixes the override for QQuickWidget to
return the new type, where the second texture is just a nullptr (not
used).
Change-Id: Ie2d8906ed6c974b1813c7a900e54343db04226aa
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
Reviewed-by: JiDe Zhang <zhangjide@uniontech.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The settings that were previously only controllable via environment
variables get now a counterpart in QQuickGraphicsConfiguration. The
env.vars. stay since most of them are fully documented so must
continue to function as before. Now they just have a way to enable the
same from C++, on a per-QQuickWindow basis (if being per-QQuickWindow
is applicable, that is)
Most importantly, productize and document the pipeline cache save/load
feature.
This now has support both for specifying a custom filename for saving
to or loading from, and in case nothing is set explicitly it has an
automatic solution similar to the Qt 5 era GL program binary cache,
under the standard CacheLocation of the system. And it works for all
the graphics APIs, storing whatever the QRhi returns as the "pipeline
cache" blob.
With the default threaded loop the new cache control APIs are a grand
improvement: instead of having only the global environment variables
(QSG_RHI_PIPELINE_CACHE_SAVE/LOAD), one can now control
per-QQuickWindow from C++ where the pipeline cache is stored. This
allows sophisticated applications to support caching shaders/pipelines
for multiple windows in a sane way (i.e. with different cache files,
this way no conflicts and overwriting of each others caches happen).
It also allows pre-seeding (deploying the cache file to another
device, thus accelerating the very first run of the application
already) in a simple way: run with saving the cache contents to
whatever file is desired (even better, loading can still happen from
the standard cache location, so it is not necessary to start
revisiting all views and states to get pipelines/shaders compiled if
the application was used before), then ship the file and load
explicitly from that. (the usual caveats apply: the cache is ignored
if the GPU or driver version do not match; the exception being data
from D3D11 as that is freely reusable between PCs)
It turns out that having a nice API design is not ideal for the
'basic' render loop, but there is nothing we can do about it. While we
now have a way to control the pipeline cache storage per-QQuickWindow,
it won't actually work on a per-window basis with the basic loop
because that uses the same QRhi for all windows, and so the API
structure falls apart: having per-window settings that affect the
underlying QRhi is actually futile. (but given that QRhi is not public
there is no other choice really and for 'threaded' we still want a
proper per-window solution) This could be addressed in the future by
converting the basic loop to also use dedicated QRhis for everything
(which may involve some caveats). For now it is documented that the
basic loop will only take one window's settings into account when it
comes to the cache.
Note that there is no support for QQuickWidget. As the architecture is
totally different, with the QRhi infrastructure controlled by widgets
and the backingstore, that is out of the scope of Qt Quick to solve.
The biggest change is the automatic pipline cache which is on by
default, as long as no explicit filenames are given (it can be
disabled in some other ways as well (env.vars/app.attribute), but this
should rarely be needed in practice) This is expected to give a boost
to all applications on all platforms, although the gains will be small
on systems where the drivers employ their own persistent caches (which
is quite common these days, esp. on Windows and macOS). Nonetheless
there will still be small improvements, with milliseconds shaved off
of the total time spent on compute/graphics pipeline creation during
the lifetime of a QQuickWindow. Big improvements are expected to be
visible with D3D and Qt Quick 3D: the cache stores the DX bytecode
(Quick 3D's run time material shader building causes HLSL code to be
compiled at runtime) so apps using View3D are expected to benefit a
lot from this.
Task-number: QTBUG-103802
Task-number: QTBUG-106545
Change-Id: I01269424784b02114b88c4a712cf64512ff68ed7
Reviewed-by: Christian Strømme <christian.stromme@qt.io>
|
|
|
|
|
|
|
| |
Task-number: QTBUG-105718
Change-Id: Id89ed14990804a5024183e75382cc539d4293da1
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Jörg Bornemann <joerg.bornemann@qt.io>
|
|
|
|
|
|
|
|
| |
We should not delete the user given root, but ensure it is reparented.
Change-Id: I91dc57482ffa7f7faa91b70016c6369c8dc950ab
Pick-to: 6.4
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
| |
CMakeLists.txt and .cmake files of significant size
(more than 2 lines according to our check in tst_license.pl)
now have the copyright and license header.
Existing copyright statements remain intact
Task-number: QTBUG-88621
Change-Id: I72c89a98c42bbc9234d8495e9e503bec81d11037
Reviewed-by: Jörg Bornemann <joerg.bornemann@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
| |
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: Ifdfd7fd73c3338c9ef66f8e7c9d49a00107594f9
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
|
|
|
|
|
|
|
| |
Fixes: QTBUG-101964
Pick-to: 6.3 6.3.0
Change-Id: Id088bdeff8d266eee0ba241097e8c9d8e1f338fe
Reviewed-by: Kai Koehne <kai.koehne@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
Launching with QT_QUICK_BACKEND=software should never lead to doing
anything QRhi-related, neither in Qt Quick, neither on the Widgets side.
Fixes: QTBUG-101884
Change-Id: I0dc47e04a0d32904db04f32a1db109029f8f4b44
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
| |
When it comes to examples, quickwidget has the direct OpenGL usage
removed because we want this example to be working with any graphics
API. qquickviewcomparison, which features direct OpenGL usage within
its Qt Quick scene, is renamed to a more descriptive name and is also
getting a doc landing page. It continues to be requesting OpenGL (via
QRhi) explicitly.
Change-Id: Iae5b835441f3af229e9746e14dedbe9d1a62b2b9
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
See script in qtbase/util/includeprivate for the rules.
Since these files are being touched anyway, I also ran the
updatecopyright.pl script too.
Change-Id: Ib056b47dde3341ef9a52ffff13ef677e471674b6
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
The extensive use of notes in overview documentation should be avoided.
All the notes are concerned with performance considerations, so
let's group them together in one section.
Pick-to: 6.2 6.3
Change-Id: I4854e078e35190726091b2ef6b7a674abda8b3b7
Reviewed-by: Venugopal Shivashankar <Venugopal.Shivashankar@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
By default, the offscreen window is placed on the primary screen.
However, if the parent widget argument is passed to the QQuickWidget's
constructor, then QQuickWidget's and the offscreen window's screens can
be different and that can create rendering issues, e.g. blurry text if
the primary screen and QQuickWidget's screen have different scale
factors.
Change-Id: I10c62b5635664f943b11828773f14017f198a770
Reviewed-by: David Edmundson <davidedmundson@kde.org>
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
QQuickWidgetRenderControl::renderWindowFor() did not take the proxy
widget into account, making it impossible to give focus to items
inside a QGraphicsProxyWidget by clicking on the item.
This patch is based on a patch by Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>,
which fixed renderWindowFor(), but did not handle the case where a proxy widget
was in multiple views.
This version of the patch adds QQuickRenderControlPrivate::isRenderWindowFor(),
which allows all the views of the proxy widget to handle focus.
This patch also carefully preserves the non-obvious feature of the
previous implementation where all windows are considered to have focus
if QGuiApplication::focusWindow() == nullptr.
[ChangeLog][QuickWidget][Quick items inside a QuickWidget that is inside a
QGraphicsProxyWidget can now get focus by clicking.]
Fixes: QTBUG-91479
Pick-to: 6.2
Change-Id: I4a6fbbbeda2d14b5a6d8eb8218d5b14a3404d9c3
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>
|
|
|
|
|
|
|
|
| |
The static analyzer says offscreeWindow can be null:
https://testresults.qt.io/codechecker/daily_analyses/qtdeclarative/dev/qtdeclarative-dev-20210604-1285b67a11/qquickwidget.cpp_clangsa_765c85feff0c596c102ea775bb61e6c7.plist.html#reportHash=be277e8f02c65d088658b2397b335b7c
Change-Id: Idfb6b358044f2719157fd85f72538a1e1ad30a34
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
|
|
|
|
|
|
|
|
|
| |
Its base class is private API, so it should be private API, too.
Change-Id: Ic80f841fee19ed0305c60ad5f8e9349a05f09e5e
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The accessibility tree for the Qt Quick content should
be rooted at the QQuickWidget, and not at the offscreen
QQuickWindow.
For this to be the case, several things must happen:
- QQuickWindow must not report the child interfaces
- QQuickWidget must report the child interfaces
- The child interfaces must report the QQuickWidget as the parent
Create accessibility interfaces for QQuickWidget and
and QQuickWigetOffscreenWindow (which now gets a proper
subclass), where the QQuickWidget interface reports
the child interfaces and the QQuickWigetOffscreenWindow
reports no children
Change the code in QAccessibleQuickItem to use the
true (visible) window, where needed.
Fixes: QTBUG-67290
Change-Id: I387d0ef711138d248a8dd16eefc9839499b35eeb
Reviewed-by: Jan Arve Sæther <jan-arve.saether@qt.io>
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
QQuickWindow owns QQuickRootItem which owns QQuickDeliveryAgent, so
for every window there's an object responsible for event delivery,
while the window itself is mainly responsible for rendering (separation
of concerns). However, QQuickRootItem and QQuickDeliveryAgent can now
be used in cases where the scene doesn't directly belong to a window,
such as when a Qt Quick sub-scene is mapped somewhere into a Qt Quick 3D
scene. In that case, we must remember which delivery agent was in use
at the time when a QEventPoint is grabbed and deliver subsequent updates
via the same DA. There's also a QQuickDeliveryAgent::Transform
abstraction which subscene-management code (such as QQuick3DViewport)
can implement, to provide a formula to map the window's scene
coordinates to subscene coordinates; if defined, it will be used
during delivery of subsequent updates to existing grabbers.
Task-number: QTBUG-84870
Change-Id: I70b433f7ebb05d2e60214ff3192e05da0aa84a42
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
|
|
|
|
|
|
| |
Pick-to: 6.0
Change-Id: I3b60586604003e360070a0d481e1a3df2e087e5c
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
|
|
|
|
|
| |
Change-Id: I51fb3064f12a0740434091ba696924090deaf839
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@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>
|
|
|
|
|
|
|
|
|
| |
change surface and buffer deleted order
Fixes: QTBUG-88677
Change-Id: I4512c0c2f32f3240288bf640394644f2cc01ab80
Reviewed-by: Ma Aiguo <648709566@qq.com>
Reviewed-by: Andy Nichols <andy.nichols@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>
|
|
|
|
|
|
|
| |
This ports all of QtDeclarative.
Change-Id: Ie6eb4d96b4d49fbed1e8be514d03e331549cd712
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
Replace more QLibaryInfo::location with QLibraryInfo::path
Replace old event accessors APIs, including relevant comments.
Change-Id: Ie205fc93b6e1c0dfb3dca9100fbde417ab68fc9f
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When the focus object is updated from inside the Qt Quick scene,
the signal needs to be propagated from the offscreen window to
the widget's window, otherwise the input methods will not react
to it.
Also, we need to propagate the FocusAboutToChange event,
otherwise the contents of the editor will not be committed
when the focus object changes, and the input method can
get into an invalid state.
Fixes: QTBUG-61475
Change-Id: I44ba171c0e78ef8b2e0127cba8991f1f1cf13571
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This reverts commit 9bfa722bc0b67e01f35d78e1165602e174ae3b02.
During clean up of the patch, a bug was introduced which actually
causes it to have no effect (except print out a warning), because
the focusObjectChanged() signature is wrong. When the bug is fixed,
it turns out that it actually breaks the QQuickWidget autotest.
So this may have been a bit hasty. Reverting it and returning
to the drawing board.
Task-number: QTBUG-61475
Change-Id: Iac4507ee4c92d94b0db5b996dfa2206be564cfb3
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When the offscreen window focuses an item, make sure
we set keyboard focus to the QQuickWidget in the widget
chain.
[ChangeLog][QQuickWidget] Fixed an issue where virtual
keyboards and other input methods would not react to
input fields inside a QQuickWidget.
Fixes: QTBUG-61475
Pick-to: 5.15
Change-Id: Ice2905a33ab0f4669622367ddae2c0ed3a1f841c
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
|
|
|
|
|
|
|
|
|
|
|
| |
Follows 3d03f4e989e0ae53569a1a2e390d71c41d91f329. After that patch nothing guaranteed
that qt_registerDefaultPlatformBackingStoreOpenGLSupport() got called in QQuickWidget
applications (unless they also use QOpenGLWidget, which is rare). This is now
corrected.
Fixes: QTBUG-86335
Change-Id: I0420bbf97ca6c72227aa58a1d083fef04f86a1f8
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
|
|
|
|
|
|
| |
Pick-to: 5.15
Change-Id: I2230e2dcb7bc2497b5dbe71a22c21d84176b5e57
Reviewed-by: Samuel Gaist <samuel.gaist@idiap.ch>
|
|
|
|
|
|
|
| |
Amends 212c2bffbb041aee0e3c9a7f0551ef151ed2d3ad
Change-Id: I93b073c88af24ce6535371bb279c660799568297
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
|
|
|
|
|
|
| |
Task-number: QTBUG-85179
Change-Id: I14a1d01c8e983021461f72c5108383f4b277478b
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
|
|
|
|
|
|
|
|
|
| |
They are not strictly related of course, but the API pattern should be
kept. We can also move away from the QSGTexture dependency which is good
since that was never directly related.
Change-Id: I9aedff5918443bda3d6e3ee1ea389071222d1ad7
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
...and fix up the docs.
The string-based setSceneGraphBackend() stays of course (the docs have
been enhanced, however). The GraphicsApi enum-based overload is now
renamed to setGraphicsApi().
Using the same name for both functions is a historical artifact, reflecting
the evolution (5.0 - 5.8 - 5.14). In 6.0 we can give it a more appropriate
name, since it does not have much to do with "backends" from the user's
perspective.
Change-Id: Id75dbf81f50a148797e5b5de9be4000153737473
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
...in createFramebufferObject(), e.g. upon resizing.
Certain systems have a problem with OpenGL contexts during resizing,
according to user reports. We do not know why makeCurrent() would fail,
so we cannot prevent the failure, but we can check the result of
makeCurrent() and not go on doing GL stuff (which would almost certainly
crash) without a valid context.
Task-number: QTBUG-83319
Pick-to: 5.15
Change-Id: I50a4f4e06d636fa0ee41fb9b80e720500711854f
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
|
|
|
|
|
|
|
|
| |
Not called in practice anymore, remove the corresponding condition in
the basic render loop as well.
Change-Id: I22d6091c900ce36665b9e7f6dc91cc9276528ff6
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Several event accessors were deprecated in
qtbase/24e52c10deedbaef833c0e2c3ee7bee03eacc4f5.
Replacements were generated by clazy using the new qevent-accessors check:
$ export CLAZY_CHECKS=qevent-accessors
$ export CLAZY_EXPORT_FIXES=1
$ ../qt6/configure -platform linux-clang -developer-build -debug
-no-optimize-debug -opensource -confirm-license -no-pch QMAKE_CXX=clazy
$ make
$ cd ../../qt6/qtdeclarative
$ find . -name "*.clazy.yaml"
$ clang-apply-replacements .
Task-number: QTBUG-20885
Task-number: QTBUG-84775
Change-Id: I1be5819506fd5039e86b4494223acbe193e6b0c9
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
|
|
|
|
|
|
|
| |
Task-number: QTBUG-84718
Task-number: QTBUG-84623
Change-Id: I14392c365a52ecc410362500bbe29b4dd7953007
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
| |
ifdef code that is not available without opengl.
Change-Id: I200e95e4bcf1ee361e84819454eade0bbcbd6669
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>
|