| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
| |
When the Qt3D window is on a specific screen, then it needs to ensure
that any supporting QOpenGLContexts and QOffscreenSurfaces are set to
be using that same screen or it will fail to render the content.
Change-Id: Ief4f3e88bf6f71862bc5dace0cb0bddcdf3a98b5
Reviewed-by: Tomi Korpipää <tomi.korpipaa@qt.io>
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
(cherry picked from commit 93aa379ae5cf624f024aa9173ce42e90b5c58002)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
| |
This could otherwise result in black screens when the FrameGraph
tree is updated and no other change is sent. Screen would remain
black until some other element with dirty changes triggers a cache
rebuild.
Change-Id: Iac43965f06d1d644de14e6a6c8768e035bed69a6
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>
|
|
|
|
|
|
|
|
|
|
|
| |
Since they are already destroyed, cleanup textured ids shouldn't be used to
look up backend textures but only to tell the GLTextureManager to abandon
referenced textures. The was an oversight that should have been handled in
d47c78e6.
Change-Id: Iafaee4bb6442c907f6e011c80b5e5347579efde5
Task-number: QTBUG-69379
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
|
|
|
|
|
|
|
|
|
| |
The updating of referenced layer ids for each Entity should only be performed
once and not by multiple jobs. Therefore, this update was moved into a
dedicated job which is now a dependency of the filterentityjob instances.
Change-Id: Ie8ecc49a7c6c7d41a1f1f0d18619b5e142b68204
Task-number: QTBUG-68942
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
|
|
|
|
|
|
|
|
| |
Could not find a decent way to do a renderer/vendor string query due to
the convoluted internals so just used a define for now.
Task-number: QTBUG-67937
Change-Id: I0dcfa41377a5e430d3f7973c5aaa01535100c53c
Reviewed-by: Liang Qi <liang.qi@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When the AspectEngine with a QRenderAspect (and RenderThread) is started and
stopped within the same loop, there was a race in which Renderer::shutdown
would possibly be called while Renderer::initialize wasn't complete.
Apart from testing, such starting and stopping within the same loop is
strongly discouraged as Qt3D doesn't have time to create an offscreen surface
to properly release GL resources.
Change-Id: Ie6f0a0698c213e3015bc9c51efc48d8706f20b3b
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
|
|
|
|
|
|
|
|
|
| |
This will allow to only deal with the AbstractRenderer class interface in the
QRenderAspect. Then in practice, the setOpenGLContext function may just be
ignored by renderers which don't care about OpenGL
Change-Id: I1adc9c203e78a31ef1054a3be36e703b4e1a6f3e
Task-number: QTBUG-61151
Reviewed-by: Mike Krus <mike.krus@kdab.com>
|
|
This is another step toward isolating the renderer from the render aspect
Change-Id: I4031675b961d6645b65bbe05cf62d150993038b0
Task-number: QTBUG-61151
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|