| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
| |
Removes the jobs who's only purpose was to send a message to the frontend.
Now added a jobsDone() call to render which is called from main thread
when jobs are completed, so it's safe to sync data to frontend.
Added a task trace for the backend to front end synching.
Change-Id: I587462bea353c5d5a0065b542adcacef4dedb05f
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
|
|
|
|
|
|
|
|
|
| |
Remove VideoPlayer thread, not needed and could yield to asserts
if QOpenGLContext::makeCurrent is called from another thread
than the one it was created with, depending on platforms and
QApplication flags being set.
Change-Id: Ic5d1858e5356b16293ee6298558dd7c60f3c86dd
Reviewed-by: Mike Krus <mike.krus@kdab.com>
|
|
|
|
|
|
|
|
| |
Shows that update are done before rendering takes place
Change-Id: Ia3f5bcb497c023dad805609dcb1ffe9ce7947c06
Task-number: QTBUG-79375
Reviewed-by: Mike Krus <mike.krus@kdab.com>
|
|
|
|
|
| |
Change-Id: I09d69fab7aaf3c2fa77da6eb30e505d9cb25c01f
Reviewed-by: Mike Krus <mike.krus@kdab.com>
|
|
|
|
|
|
| |
Change-Id: Iff354956c831919cbb9d58f75014be0fa92b45c4
Reviewed-by: Mike Krus <mike.krus@kdab.com>
Reviewed-by: Michael Brasser <michael.brasser@live.com>
|
|
|
|
|
| |
Change-Id: I8048795277828ecba7d46dbc846685e606b2b8b9
Reviewed-by: Mike Krus <mike.krus@kdab.com>
|
|
|
|
|
| |
Change-Id: I57111539631824f2b38f7a8e49d8ca80c189b376
Reviewed-by: Mike Krus <mike.krus@kdab.com>
|
|
|
|
|
| |
Change-Id: Iac24c13fa77bb0c6317af77f61016ee6fbf9a916
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
|
|
|
|
|
|
| |
Some settings were removed erroneously.
Change-Id: Ib23b04e98e31b0357df401118c28bfb1d6f5623b
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
|\
| |
| |
| |
| |
| |
| |
| | |
This replicates the effects of the fast-forward merge that should have
been pushed on 2019-08-27 as the final down-merge from dev to 5.14.
Task-number: QTBUG-78019
Change-Id: I32e5320c8eb97005838f1982d1fa7953f1312548
|
| |\
| | |
| | |
| | | |
Change-Id: I53aa6c3f61b1f624ec553079a9332c96486abf3f
|
| | |\
| | | |
| | | |
| | | | |
Change-Id: I359b15d87622515ee4f05db1f01d4b476027378e
|
| | | |
| | | |
| | | |
| | | |
| | | | |
Change-Id: Id7f37b014dec7f395bbf3d2c6c22ea59283257ec
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
If the node type supports syncing, use that rather than the creation
message. The message is still needed since that is passed to the
instantiation functor (none of qt3d's classes appear to use anything
but the node id, but can't be sure no other classes do, and can't add
other virtual method without breaking BC).
Change-Id: Id99f448070b8722a7809b968798772c9eb3c8397
Reviewed-by: Mike Krus <mike.krus@kdab.com>
|
|/ / /
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This now makes Scene3D rendering fully synchronous and blocking:
- All Qt3D jobs have to be executed before we can render the GL
commands
This makes the blocking mode that could be activated with
SCENE3D_BLOCKING_RENDERMODE the default behavior now and therefore
we could remove references to it in the code.
This now means that Qt3D and QtQuick will be rendering at the same
refresh rate, which in most cases won't be noticeable and will ensure
that content from Qt3D scenes matches content from QtQuick scenes.
The only downside is if the Qt3D rendering takes longer than the time
expected by QtQuick, the whole QtQuick rendering will be slowed down.
Previously the QtQuick rendering might have still run at 60fps while
the Qt3D rendering at a lower fps. Now the QtQuick fps would be the
same as the Qt3D fps. That being said, the old behavior also meant
that if Qt3D didn't catch up, the delay between QtQuick and Qt3D
would only increase frame after frame.
This change allow to simplify the internals by making Scene3D and regular Qt3D
use the same code paths internally.
Please note that Scene3D relies on QQuickWindow::afterAnimating being called
each frame. When using a QQuickRenderControl this means you might have to call
it manually as part of your rendering code.
Task-number: QTBUG-72385
Change-Id: I887daf6df632e296a892b844e738a67e973fee7f
Reviewed-by: Mike Krus <mike.krus@kdab.com>
|
|\| |
| | |
| | |
| | |
| | |
| | |
| | | |
Conflicts:
tests/manual/manual.pro
Change-Id: I15d497da84d3fe684c3a598831171d6aed7534ca
|
| |\|
| | |
| | |
| | | |
Change-Id: I2a66e9344b72524431885bdf5f59fcaedb94c718
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
When merging states, make sure we don't add several states of the same types
with possibly different values. We should only add states with type we don't
already have.
Since the FG traversal is done from leaf to root, we know that the states we
already contain should override any state that may have been specified higher
up in the FG branch.
Change-Id: I9bd1eadd37e8addf740a4b85b2318f9be269fedb
Task-number: QTBUG-76766
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Demonstrating and testing Shader Image support
Change-Id: Id84df33b6d5d5c411a282c63b70bf0da3241a058
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
The only noteworth change is where a loop around spy.events modified
the container using takeFirst(). There was no reason to do so, so it
was changed to use the loop variable instead of the result of taking.
Change-Id: I02c62a7c2efc5d042c6e669fe5daddd7da7e85d2
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
|\| |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Conflicts:
src/render/backend/abstractrenderer_p.h
src/render/renderers/opengl/renderer/renderer.cpp
tests/auto/render/renderer/tst_renderer.cpp
Change-Id: Ib6da858f10bec57bdb1002bd8fa4172304d118f2
|
| |\|
| | |
| | |
| | | |
Change-Id: I42affdd02bddb5205b9f2455f0c5e5efbd414dd8
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
When the initial Entity backend node hierarchy is created it skips over
any non-entity nodes to ensure that Entities are only parented to
other Entities. Calling QNode::setParent breaks this when reparenting
Entities to non-entity nodes.
Fix by sending a new "parentEntityUpdated" property update that backend
Entity nodes listen for. They keep the id of their new parent and flag
the need to rebuild the entity hierarchy. This triggers a new job to
clear the children and parents of every backend Entity, then rebuilds
the hierarchy using the stored parent ID in each Entity. This is much
more forgiving of creation/parenting ordering issues and shouldn't be
less performant because any Entity reparent was previously marking
everything dirty anyway.
Add a new test from QTBUG-73905 that creates 4 cylinders and manipulates
the parents in different ways.
Add a new test to tst_nodes to reparent a QEntity to a QNode and ensure
the entity finds it's correct QEntity parent.
Add a new test to tst_entity to ensure backend nodes correctly handle
the new parenting events.
Task-number: QTBUG-73905
Change-Id: Iab0203947d89bbed2868b3629fbde879675fe568
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
|\| |
| | |
| | |
| | | |
Change-Id: Ib5c04e9941aeea1a4cd27519b94b9a53e8349ea3
|
| |\|
| | |
| | |
| | | |
Change-Id: If17511da64dd666a536408aa3cb3178ef6db0403
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This test triggers the case referenced in QTBUG-72236 and is added to
avoid regressions.
Task-number: QTBUG-72236
Change-Id: I797015dfe25a084e75183c02e07dddb224fbc738
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
- Introduce QTextureDataUpdate which contains information about the update
- QAbstractTexture::updateTexture function added
- Add manual test texture-updates-cpp
- Add unit tests for GLTexture and complete other texture tests
Change-Id: I1b792f2075830ce05cc8e04cc68110141b5571d6
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
|/ /
| |
| |
| |
| |
| |
| | |
QRasterMode allows a user to change the raster mode from fill to lines or points
Change-Id: If96848e38ac4b5a615040b3bae2dec38a03cb031
Reviewed-by: Kevin Ottens <kevin.ottens@kdab.com>
|
|\|
| |
| |
| |
| |
| |
| | |
Conflicts:
.qmake.conf
Change-Id: Ie8a4bf768bffba61dca9e315151c035be7b48723
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The viewport rect is computed in GL coordinates. Therefore we need
to check if the mouse is contained with the position in GL coordinates.
The error is not noticeable unless you are using non full height viewport.
Change-Id: I1c39ff91da4a3649288826b939071a298c83c723
Task-number: QTBUG-72856
Reviewed-by: Mike Krus <mike.krus@kdab.com>
|
|\|
| |
| |
| | |
Change-Id: I13dfef5918cada019dfa29a28a8eee6a6efa7e27
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
It used to work before because it would default to RGBA_Unorm
but that should be either deduced when using a QTextureLoader
or specified when using a raw QTexture2D
Change-Id: I930ce490a393f48b870d4e2c1f15e0551c468f2d
Reviewed-by: Mike Krus <mike.krus@kdab.com>
|
| |
| |
| |
| |
| |
| | |
Change-Id: I78047f354a9f7cdbb56bd2b5dee79cb77e6cb749
Task-number: QTBUG-70055
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
|/
|
|
|
|
| |
Change-Id: Ifc65966c50cb6fc8780206852f92bf1d4a6b4d5b
Task-number: QTBUG-69918
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
|
|
|
|
|
|
|
|
| |
Now handles either loading from file or from a Component
[ChangeLog] EntityLoader now also supports loading an Entity from a Component
Change-Id: I1988f897071e5527b36e1b494bba57e9ab165bd8
Reviewed-by: Mike Krus <mike.krus@kdab.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Taking into account we have texture sharing in the backend,
we can only update frontend texture properties once we have
created the shared backend texture.
Code was adjusted to retrieve these properties when creating
the GLTexture. Such changes are stored and sent on the next
run loop from a job where they are distributed to all referenced
frontend Texture.
The status property handling has also been updated to send status
changes to all shared textures instead of just the texture whose
data generator is used to gather the data.
A manual test checking texture property updates, sharing and
remote url sharing has also been added.
Change-Id: I8ed2449fe57c9d7337580b0f7561f974cbd5006d
Task-number: QTBUG-65775
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Can now specify source urls to QAnimationClipLoader with query
parameters for animationIndex or animationName.
Add a new manual test to demonstrate/test this by loading the 2nd
animation from the Rigged-Simple.gltf file.
Will followup with the same support for Qt 3D native json animation
files.
Change-Id: Icb66073f29b8471fe06e2e2e9c43720567dc9ee5
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This behavior prevented using TextureImage not directly parented by the
Texture that uses them (assert would be triggered). In turn, this also
prevents sharing a TextureImage among several Texture instances which is
counter productive since this is where the data is actually stored.
This patch fixes this issue. It removes all direct coupling between Texture
and TextureImages. Now Texture only contains the list of TextureImage ids it
references. This allows to not make look-ups into the TextureImageManager to
retrieve handles, which could be an issue if TextureImages have not yet had
their backend created. TextureImage doesn't keep track of the referencing texture
that uses it anymore. Instead, we let the renderer do the job of checking if any of
the TextureImage referenced by a Texture has changed to trigger actual Texture
update.
Change-Id: I3c63379d0f4b314e9b53f225870eeaded0bb4aec
Task-number: QTBUG-69407
Reviewed-by: Mike Krus <mike.krus@kdab.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
All texture assets were made by KDAB under the CLA. The material
"sphere" mesh is from Allegorithmic and published under the
Creative Commons 4 license. See paragraph 1.2 of
https://www.allegorithmic.com/legal/substance-share
Task-number: QTBUG-61415
Change-Id: I23d61723bbac561e22e11fa57105b29148c01699
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
(cherry picked from commit 74c06c02f896c6aba408cfd0857d317378572736)
|
|
|
|
|
| |
Change-Id: Id8ef731d5f80648c19221c1d1b334bd8367188c3
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
|
|
|
|
|
| |
Change-Id: Icdd27b5ef6b50512e4af40d68d1ba7525f56b991
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
|
|
|
|
| |
Change-Id: I19c1907371d9d131295558eb19c297d544ebef7d
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
|
|
|
|
|
| |
Change-Id: Id4b73655ee30c3c225ee804f1e9244cc2b16aebf
Task-number: QTBUG-60927
Reviewed-by: Mike Krus <mike.krus@kdab.com>
|
|
|
|
|
| |
Change-Id: I88eb9b0a88291a5152d5eded3c16d01c84a459fe
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
|
|
|
|
|
|
|
|
|
| |
Animation local time was computed in absolute mode, as a scale of the
global time that has passed since the start of the animation. Now is
computed relative to the last local time, as the last local time + a
scale of the elapsed global time.
Change-Id: I5c29002602a5184174618ac7755ec94f5c7a328f
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
|\
| |
| |
| |
| |
| |
| | |
Conflicts:
src/animation/backend/animationutils.cpp
Change-Id: I6bd0d1d15da00537a0bb064fc828b2460584b8e8
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This only loads the shader source once instead of 1000 times. Reduces
the time to first frame by a further 30% by massively reducing the
work the main thread has to do at startup. The Qt3DExtras material
classes are convenient but lead to bad practices like this. We should
provide a way to allow them to share the effect easily but still use
the provided materials for their API. Perhaps a new ctor overload that
takes a QEffect pointer would work nicely.
Also fixed some float vs double vs int precision warnings as a drive
by.
Change-Id: I181de8d95841eb88c91c29ef6f45d215da079b98
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
| |
| |
| |
| |
| |
| |
| |
| | |
No point loading the same data 1k times. Shaves 35% off the time from
application start to first frame being complete.
Change-Id: I8cd7c8a5aa377c0663c03e35d7a4c03f50b052f6
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
| |
| |
| |
| |
| |
| |
| | |
Fixes clang warning.
Change-Id: I1831bd112c33cdd1fe9cc7ae169cfba05cb8a694
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The backend doesn't need to know about the rotation angles used to
update the transform. Saves about 3% of time on the main thread
related to mallocing the property change notifications.
Change-Id: I784baf705cdd697ba860dc7a0c2e0e1c9ee467ec
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|