| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
| |
This will be needed to gather the environment lights in the scene.
Change-Id: Icabcfb378c4938448bd241460b0f3fa3811c0287
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Component to control complexity of entities based on either
distance to camera or size on screen.
Given a specific camera, the LevelOfDetail computes the distance to
the observer, or the screen size of the entity. The currentIndex
property is updated to identify which of the entries in the
provided array of distance or size ranges contains the current value.
A disabled LevelOfDetail component will act as a simple
(user controlled) switch.
Updates are not done on disabled sub trees since their
bounding boxes may not be valid.
Change-Id: Ifa4c088de6b80b6a6ed203070411761574686cdb
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
FilterLayerEntityJob would not check for the enabled-ness of
parent entities, if present.
We introduce another job that checks for each entity, whether
it is enabled or not. Jobs that need to access this flag must
take care to add a dependency on the UpdateTreeEnabledJob
Task-number: QTBUG-56235
Change-Id: Ic087fc8e9efdd4829cdb18ae3e8430344f6ecf43
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When cleanup is called that means an Entity needs to be recycled for reuse
later on. The children handles vector wasn't cleared which resulted in it
containing invalid handles when the Entity element was reused. In turn that
eventually resulted in asserts in the handle manager when that Entity was
released again (which explains crashes with the QSceneLoader changing
sources).
Change-Id: Ic2e69132e4a5186f92936593ddcf3da72a7e1446
Task-number: QTBUG-54889
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
|
|
|
|
|
|
|
|
|
|
| |
Wasn't being built anyway which led to a warning with moc. We should
rethink how we do such debug rendering so as to not hardwire a Layer
component and make it work with other framegraphs not implementing a
simple forward renderer. Can revert this in the future as a starting
point if needed.
Change-Id: I055310f440b49f144a5ab635122f2193b8c5ac12
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
|
|
|
|
| |
Change-Id: I560089e499aa8e98415b00b3131a5e9923c1a551
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
|
|
|
|
| |
Change-Id: I8b7b53be17c91dbafeb46a6537b236a60f374f10
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
|
|
|
|
| |
Change-Id: I85d78d99c18544944ffae11eaf76e89a54d5e828
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
|
|
|
|
|
| |
Task-number: QTBUG-51494
Change-Id: Ic326499f80b5a91b2d19c09770de926f220cc805
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
|
|
|
|
|
|
|
| |
This is not needed and was not used anywhere in any meaningful way.
Task-number: QTBUG-51494
Change-Id: I6b09fb248f48ec844bfebcf2c0013f0bf8478f18
Reviewed-by: Kevin Ottens <kevin.ottens@kdab.com>
|
|
|
|
|
|
|
|
|
|
| |
Implemented a few missing initializeFromPeer() implementations along
with the corresponding frontend node creation change creation functions.
Adapted unit tests.
Change-Id: I571e53a7b68a5544bd0e308df0baf7e52533306e
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
|
|
|
|
|
|
|
| |
from QBackendNodeMapper and subclasses. No longer needed now we have
disabled cloning.
Change-Id: I261fa7bccfa9a4019d479079e2ff7c19154e5e72
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
|
|
|
|
|
| |
Task-number: QTBUG-52736
Change-Id: I58f9cbcdf018e7b672d33dd865067485412b79fe
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
We are turning the relationship between QAbstractLight and QShaderData
from a "is-a" to a "has-a". For that we relay all the properties of the
light to its internal shader data dynamic properties.
Interestingly it also removes a couple of special handling for lights
which aren't needed anymore.
Change-Id: Ia937b8934f94ce318e02901d90ac340e172cbc75
Task-number: QTBUG-51489
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
|
|
|
|
|
| |
Change-Id: I3ee3f6e3c9eef554fce7d79407825894b1be2450
Task-number: QTBUG-51489
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
... by replacing them with C++11 range-for loops. To
avoid detaches of these mutable Qt containers, wrap
the container in qAsConst(), where needed.
This is the batch with low-risk changes. They operate
on local containers or the loop body clearly does not
cause the container to change.
Saves 8.3KiB (2.8%) in text size on optimized GCC 5.3
Linux AMD64 builds.
Change-Id: I7e4f8390b7530981185ad65d152b267e18a88c90
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
|
|
|
|
|
|
| |
QBoundingVolumeDebug has been disabled for now. Will be re-enabled later on.
Change-Id: Id6b0abab2ec2aa697330bd20d782f9d104d25d50
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
|
|
|
|
|
|
| |
Trying to unify naming of change types.
Change-Id: I0bfca0b7ba5adeaaa6145f75ddb41731f76adc09
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
|
|
|
|
| |
Change-Id: I31d1d60fad2ed85bcb7b9cac956b36b89e6bfb1e
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
|
|
|
|
|
|
| |
Also make sceneChangeEvent call BackendNode::sceneChangeEvent
Change-Id: Ic5be546dadc116af07f02cfe39c4bcfb76d2281a
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
|
|
|
|
| |
Change-Id: Iafc679ea1f495d9c1ad2c1a434cd2ebb9ec803dd
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
|
|
|
|
| |
Change-Id: I49f06a618ba4356fa723f70b3ff5598b9d9ccea6
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
|
|
|
|
|
|
|
| |
QML type exported though, need to decide where/how to hide it
Change-Id: I2d341456c3e09101da895ccd4a925f85a01089b0
Task-number: QTBUG-51449
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
|
|
|
|
|
|
|
|
|
|
| |
* Renamed to QComputeCommand
* Removed protected ctor
* Added x,y,z workgroup properties
* Renamed backend elements to match frontend
Change-Id: I3959ec671a7d6e86239f72336f02452ea58919ee
Task-number: QTBUG-51514
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
|
|
|
|
| |
Change-Id: I72471d0b22d16bbbee33610e30a06daadffedbd9
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
QNodeId is a 64-bit type, so holding it in QList on
32-bit platforms is horribly inefficient.
Fix by porting to QVector instead.
[ChangeLog][Important Behavior Changes] QNodeIds are
now passed and accepted in QVectors, not QLists.
Change-Id: I3cbe35d639eb2ddf9d106294f542f65b431dc4a4
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* Bindings are now entirely deduced from shader introspection
* Modified the BackendNodeDirtyFlags to remove the class at this
prevents the operator~() to be called
* Make the Renderer loop check for the ComputeDirty flag and
don't unset it if set
Note: uses a hack to reset m_changeSet in performCompute as right know
we are sometimes missing the markDirty(ComputeDirty) set by the ComputeJob nodes.
Will be sorted out later.
Change-Id: Ic4fa71ecf01b625e885a58a66278387bf5b36339
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
|
|
|
|
|
|
|
|
|
|
|
| |
Each sceneChangeEvent marks a dirty bit in the AbstractRenderer.
If no changes were accumulated during one frame, the renderer decides
not to render the frame, by returning false from shouldRender().
We still need to go through each backend node and see what flags
to set exactly, and to make sure we also react on backend-initiated
changes.
Change-Id: I80588bc5c4ebeb5d57b45ddfbd4d79ec268968b1
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
|
|
|
|
|
|
|
| |
Modified all node functors to pass QRenderAspect's renderer instance
to all newly created backend nodes
Change-Id: Iffa4941bff53f6acf87f46789219c7ae2f123615
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
|
|
|
|
|
|
|
|
| |
Render aspect Backend nodes now subclass from QRenderBackendNode,
which is a subclass of QBackendNode. We may want to store aspect-
related data in each backend node
Change-Id: I4f00de09c8cc31d2347d919151d359ad44cf03a9
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
|
|
|
|
| |
Change-Id: Ia672918cbae3b950e20e68bfbfd6982676a5981e
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
|
|
|
|
|
|
|
|
| |
The variable was removed from QBackendNode and subsequently
all areas it appeared.
Task-number: QTBUG-49682
Change-Id: I5904714b55aaefbe07ee11008ff49cd1d9b89950
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
|
|
|
|
|
|
| |
Update old header.LGPL3 to header.LGPL
Change-Id: I8eac0cd6bbc276a56df487249cc459c0d4fab165
Reviewed-by: Jani Heikkinen <jani.heikkinen@theqtcompany.com>
|
|
|
|
|
|
|
|
| |
Also get rid of Qt3DRender::QWindow and of the hard codes camera
controller.
Change-Id: I307735d01caf97b7a690b28de8dc99fc9866c35f
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
|
|
|
|
| |
Change-Id: I1a99115b78478ec143a83a2f768a7249d9038ac0
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
|
|
|
|
|
|
|
| |
The intermediate QLists are still not optimal here, as these methods are
called per frame, but at least this is now down to one allocation each.
Change-Id: I7705172aabc5e526c5123d70450d3ae2dec20d03
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
|
|
|
|
|
|
|
| |
It is used only once in the whole of Qt3D and looks rather foreign to
the rest of the nodes API.
Change-Id: I6d8d40590a1f8a5c2019a8d16a7abff4f19ae9bb
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
QAbstractLight becomes QLight and gets its own backend node. This way we can
easily gather all lights for the scene and filter them when building render
commands.
Both the frontend and backend remain a subclass of (Q)ShaderData
but will not be part of the ordinary ShaderData component list. This
prevents mixing up ShaderDatas and Lights but allows reusing the same
underlying infrastructure so that properties can automatically be
transformed for example. It is worth noting that the position property for
lights is now removed: the position is determined by the entity's (to which
the light component belongs) position.
A number of changes are made to ShaderData itself as backend subclassing
with different managers is not straightforward.
For now the distance between the rendered entity and the entity with
the light component is calculated and lights will be chosen based on
this distance. A framegraph node for controlling this will be added
in future patches.
No uniform setting or shader changes are included here.
Task-number: QTBUG-48834
Change-Id: I43a6c5f9420d4254d798c558bd58680b2b09eceb
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
|
|
|
|
| |
Change-Id: I175a2bd4ed2ed59f070b8371495cc573941f1c1d
Reviewed-by: Andy Nichols <andy.nichols@theqtcompany.com>
|
|
|
|
|
| |
Change-Id: I8d505034b24c3ec00b93ace02e5a4fe450939478
Reviewed-by: Andy Nichols <andy.nichols@theqtcompany.com>
|
|
|
|
|
|
| |
Change-Id: I338d55d8c6f81a55ecc61a247b9a1791bd25bb7d
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
Reviewed-by: Andy Nichols <andy.nichols@theqtcompany.com>
|
|
|
|
|
|
| |
Change-Id: I404d35ff9e159d47c53660220cf5899b6df1cf89
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
Reviewed-by: Andy Nichols <andy.nichols@theqtcompany.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Previously there was only and enable property for the QNode subclass
QComponent, but now all QNode subclasses should also have an enable
property. This means that it is now possible to disable a QEntity which
would also disable all of its children. This is a bit tricky though
because each Aspect needs to now check if the corresponding QEntities
are disabled or not before processing. This has been accounted for
with RenderEntity in the Renderer already, but will need to be respected
in each Aspect.
This behavior is similar to the Unity3D GameObject active property which
disabled the entity and disables all components.
Change-Id: I5233b2b43f04aa5dfa7910eac6a88a9da656a997
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
|
|
|
|
| |
Change-Id: I940a8ea898a338f20bb9abbebcc1fcef9830a118
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
|
|
|
|
|
|
|
| |
Will be needed to retrive Entity from hits reported by the RayCasting
service.
Change-Id: I91f1f3c2277d468c2ec60509a04095138a5eafcb
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
|
|
|
|
| |
Change-Id: I673cd1d8385d3e54c066fbd7dec522e4da5a9f79
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
|
|
|
|
| |
Change-Id: I30b2149b5e90c92e012b77b4101200990610d96a
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
|
|
|
|
|
|
|
| |
This is for consistency between the C++ namespaces and QML imports and
with the other aspects.
Change-Id: I73392f138b4e519b12888f52530123e3d0ba445e
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
For BackToFront sorting to work we need to calculate a depth value based
on the entity's bounding spheres. This is currently missing as there is no
AABB from which the RenderEntity's localBoundingVolume could be
calculated.
Bring it back.
RenderEntity contains two world bounding volumes from now on: just
having one that includes the children is not ideal because in some cases
we want to know the entitys own bounding volume not including the children.
This is the case when building render commands for example.
Change-Id: I20f5bccdc3f868bcbd5faa3164f0e9995a3171ec
Reviewed-by: Andy Nichols <andy.nichols@theqtcompany.com>
|
|
|
|
|
|
|
| |
Update other aspects, tests and examples accordingly.
Change-Id: Ib1bcf0bdf4f5aec4422dc0c80bfc32b27fb1a317
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|