| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
| |
Change-Id: I87e8292ee606af33f729e2b492a616325a49c89a
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
|
|
|
|
|
|
|
|
|
|
| |
The timer is parented to the QMouseHandler (introduced in
595b4add0ce6f32bb8ffc56b3a59e6e5bf0b000a) and was therefore deleted both
by the parent and by the QScopedPointer, leading to crash on exit.
This commit removes the QScopedPointer and uses a raw pointer instead.
Task-number: QTBUG-63462
Change-Id: I6b031caf7cb69ccbde74995661f4ce8c73f21d88
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Copy externalRenderTargetSize and surfacePixelRatio from
old to new surfaceSelector when setting activeFrameGraph
on RenderSettings. Previously, when switching
activeFrameGraph, surface was copied from old to new
surfaceSelector, but these other properties were not. The
rendered image was then stretched until window is resized
again.
Change-Id: I62b78da05c764f981813ab96b9a769bae7d786b2
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
|
|
|
|
|
|
|
| |
For < 3 vertices, array accesses would fail, and face creation not
make sense anyways
Change-Id: I5eb746dfdec92d1c836e9870d87e7900530ec81c
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
|
|
|
|
|
|
| |
Or else we will continue uploading data indefinitely
Change-Id: If81d8a0a790964c699462fbcb166808ee7859f59
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
|
|
|
|
|
|
|
| |
Change order of local variables affecting the destructions order
and making sure window outlives the surface selector
Change-Id: Ia04f110656f4cc563643fb056ae491ffadf3a8b4
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
|
|
|
|
|
|
|
|
|
| |
In some cases, the list of pickable objects may contain entities that don’t have an object picker (or not parent has).
Now filter the pick results to only keep entities which either have an object picker or are children of an entity that does.
Added unit test which now passes
Change-Id: I930c3d60cf2d19e845fe6c0de904c53b93ebe8be
Reviewed-by: Kevin Ottens <kevin.ottens@kdab.com>
|
|
|
|
|
|
|
| |
We always use the same policy anyway.
Change-Id: I3349b8c19ce0e6239b140dfac7ba66f8dda1b9be
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
|
|
|
|
|
|
|
|
| |
Instead, direclty use the Allocator to acquire and release handles
without an additional indirection. This removes around 30% of the
overhead in run().
Change-Id: Ic4a9343dd52a900eb1c7eb6b4135bc7670076df1
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
|
|
|
|
|
|
| |
It's not used anywhere
Change-Id: Id65ec9fc8e38697c0dbd23fe4f816e1637a22483
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
|
|
|
|
|
|
|
|
| |
This should be removeAll instead of remove(). Remove takes an
integer (index into the array). It compiles by chance (but doesn't
do the right thing), as QHandle has a cast operator to int.
Change-Id: If8d59a535021bab3d2553f83bef7cf769c738dd6
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The mutex right now is used for controlling access to the m_dirty flags,
and for guarding access to m_gl and other data.
We don't need to use it for accessing the flags, as an atomic int will
do just fine and relieve us of potential deadlocks. The mutex must only
guard changes to the actual data.
Task-number: QTBUG-61130
Change-Id: Ia1f25af2233387f375c077965e901c67f972f1ec
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
We need to notify the BlendedClipAnimators, when any of the
clips it depends on have been loaded. So we register each
animator at the clips that it depends on, mark the animator
dirty when the clip has been loaded and thus trigger a re-run
of the BuildBlendTreesJob.
Make sure to guard accesses to the Handler via mutexes, because
backend objects can be marked dirty from various threads.
Task-number: QTBUG-61941
Change-Id: I4890d0d76d3118538537252f920d9477bed8f934
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
If not, some aspect's library might not have been loaded yet,
when the QQmlAspectEngine is created. This means that their
static aspect registration code will not have been run, causing
the QAspectFactory to not include it in the defaultAspects when
it is created.
Following calls to QQmlAspectEngine::registerAspect() will fail,
because the engine was created too early.
Change-Id: I96dc8a972dc4fbd1cf3a8d2d91067d59e0d72e57
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
|
|
|
|
|
|
|
| |
If a specific byte stride is given by the user, we should expect that he
knows how the buffers look.
Change-Id: I0ee9a92bf628d3f3fda935e9cd83e7c1150cd089
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
|
|
|
|
|
|
| |
And inline the nameId() and uniform() getters.
Change-Id: I4c30a6fa36a6e5a7e621d3fad91d88adfcfda185
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
|
|
|
|
|
|
|
|
|
|
|
| |
Reduces the overhead per call of lookupId() from around 7000 to 180
instructions for a use case. Should in general scale much better.
I still do not like that this is using global static data that is
never cleaned up. It should be tied at the minimum to the lifetime
of the Qt 3D scene.
Change-Id: I777a2bbf2d765f4b0fc9e3d2b06692c7260f5a9f
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
|
|
|
|
|
|
| |
Reduce the number of copies and make sure the types are compared first.
Change-Id: I6bdd411b6e16ef0f92a32de9733d737aab73835b
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
|
|
|
|
|
|
|
|
| |
Simplify the dependency look-up by moving the dependers directly into
the dependee runnable, each task is then responsible for updating their
dependers and queue them up when they are free to be run.
Change-Id: I96295d47cecd507a864965e1fb65f2ff9af68111
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
|
|
|
|
|
|
|
|
|
|
| |
If one ended up with this helper then the applyUniform would lead to a
divide by zero for any type.
As a side-effect, the support for more matrix types needed to be done
for unit tests to keep passing.
Change-Id: I66c8a2eb7e5617f2fed96c689cb4ebc024ef9853
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
|
|
|
|
|
|
|
|
|
|
| |
For textures where the format was not set (this may happen, for
instance, for a Texture2D without TextureImage children), don't try to
create a GL texture or the underlying OpenGL calls will fail. Also avoid
trying to set the corresponding uniform while rendering.
Change-Id: I17d95e2a2f1f1a1e5c22a0296c8641c4873e9e7f
Task-Id: QTBUG-62654
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Unit tests for VSyncFrameAdvanceService rely on somewhat strict timing
and may fail under certain loads.
This patch replaces timers with a semaphore to synchronize between
threads. This also makes the unit test closer to actual Qt3D code, where
there's a semaphore in the renderer to synchronize render view
submissions.
Change-Id: Ie328cdee1b3a0c2ad17f02d4f14e57e218556061
Task-Id: QTBUG-62825
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
|
|
|
|
| |
Change-Id: I9d1fef3f793f9d3eb4ef0bb3fff356539fc03e2c
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
|
|
|
|
|
|
|
|
|
| |
qmorphphongmaterial.h:57: warning: No documentation for 'Qt3DExtras::QMorphPhongMaterial::interpolator'
qextrudedtextmesh.cpp: No documentation for 'Qt3DExtras::QExtrudedTextMesh::depth', ::font and ::text
qextrudedtextgeometry.h:79: warning: No documentation for 'Qt3DExtras::QExtrudedTextGeometry::indexAttribute', ::normalAttribute and ::text
Change-Id: Ib6bb0310be3b9e3a735bb90194a79dfb295c258b
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
|
|
|
|
|
|
|
|
|
| |
HoverMove is not a QMouseEvent. So we generate a fake one and send
it for picking processing.
Task-number: QTBUG-58607
Change-Id: Iaa06bfe49494db1a46cc021747fd5d0026330525
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
qabstractlight.h:65: warning: No documentation for 'Qt3DRender::QAbstractLight::Type'
qspotlight.h:64: warning: No documentation for 'Qt3DRender::QSpotLight::attenuation()'
qshaderprogram.h:78: warning: No documentation for 'Qt3DRender::QShaderProgram::Status'
qshaderprogram.h:121: warning: No documentation for 'Qt3DRender::QShaderProgram::sceneChangeEvent(const Qt3DCore::QSceneChangePtr &change)'
qpicktriangleevent.h:57: warning: No documentation for 'Qt3DRender::QPickTriangleEvent::uvw'
Change-Id: Iedb73cc73bc28a5e9dd3498a0bb6547eb1a96ffc
Reviewed-by: Venugopal Shivashankar <Venugopal.Shivashankar@qt.io>
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
|
|
|
|
|
|
| |
Change-Id: I8967110b0237421299c2103f847a38e0526f9a6b
Reviewed-by: Venugopal Shivashankar <Venugopal.Shivashankar@qt.io>
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
|
|
|
|
|
|
|
|
|
| |
Without it the timer is leaked and doesn't follow the mouse handler when
move from a thread to another.
Task-number: QTBUG-62779
Change-Id: I34afc36165d2bbbce626d6c2c74f9408a319a7cb
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
|
|
|
|
|
|
|
| |
QOpenGLShader::link: ERROR:OPTIMIZER-3 (fragment shader, line 46) Support for for loops is restricted : right side of condition expression must be constant
Task-number: QTBUG-59349
Change-Id: Id5806e597642e0805ef02fa1804ec4a9a8e4338c
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
|
|
|
|
|
|
| |
RPI doesn't support vao
Change-Id: Icfcf90c6aff53a73704cc36c215b7b452be86778
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When a second scene is parsed, the importer for the first scene is
destroyed, and geometry renderers and materials in the parser's maps are
released, causing a crash.
Instead of converting all meshes and materials to Qt3D entities ahead of
time and storing them in maps, only convert entities that are needed by
the scene.
Task-number: QTBUG-62390
Change-Id: I1261d0dd01ced43b2731fdfe97b97885883dca9b
Reviewed-by: Massimo Callegari <massimocallegari@yahoo.it>
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
Reviewed-by: Antti Määttä <antti.maatta@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
| |
The check for parallel view and up vectors is well-intentioned, but it
cannot be done this way: the view matrix is updated already after
setting any of position, view center, or up vector. The (failing) check
can thus be triggered right after setting a position or view center that
(temporarily) results in a vector colinear to the (not yet final) up
vector.
Change-Id: I083200bf05582517880a88816b7987874810c2bb
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
|
|
|
|
|
| |
Change-Id: I3056be52f9203fbd99a3e5c01de71d79bafd2298
Reviewed-by: Venugopal Shivashankar <Venugopal.Shivashankar@qt.io>
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@qt.io>
|
|
|
|
|
|
| |
Change-Id: I839196116a5b4d70fa0545c0c6fd28079efeebca
Task-number: QTBUG-61993
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
|
|
|
|
|
|
|
| |
Also align everything properly
Change-Id: I7948670912f3d321829ee1af90ebcb2497b6f98f
Task-number: QTBUG-61996
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
|
|
|
|
|
|
|
| |
Also align everything properly
Change-Id: I65d4ed2646ed69a5037f9e8bca3c6ade6f7199b8
Task-number: QTBUG-61997
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
|
|
|
|
| |
Change-Id: Id9b03475181ef28dbee7d51d5ef3f7671f815343
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
|
|
|
|
| |
Change-Id: I333485024f4c5534d8f2bf6ee301ba52638e6126
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When rendering with Scene3D it could be that doRender() is called a lot more
times than the speed at which the Qt3D simulation loop is running (this
happens when resizing the window)
This results in vsyncFrameAdvance->proceedToNextFrame() being called while the
simulation isn't in a waiting state (simulation loop not yet blocking on
vsyncFrameAdvance->waitForNextFrame()).
This means that when the simulation loop finally unlocks, it would be able to
make several loops for a given frame. Obviously this is really dangerous as
the simulation loop drives the synching of changes and this could result in
the data being prepared by the render jobs and the actual data in the managers
to be corrupt.
To fix that, vsyncFrameAdvance->waitForNextFrame() now acquires all available
resources + 1 to cope with proceedToNextFrame being called more than once.
Obviously this doesn't happen when Qt3D drives the rendering and the
VSyncFrameAdvanceService was adjusted to have different behaviors depending on
whether we are rendering with Scene3D or not.
Change-Id: I495779571256d132fa7e1b3b31114f737de35a71
Task-number: QTBUG-60613
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
|
|
|
|
|
|
|
| |
- qtext2dentity.cpp
- qabstractphysicaldevice.cpp
Change-Id: I026ac031c366c979e17667c3635c1a391a5bba8a
Reviewed-by: Venugopal Shivashankar <Venugopal.Shivashankar@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
qadditiveclipblend.cpp:173: warning: Unrecognizable QML module/component qualifier for AbstractClipBlendNode baseClip
qadditiveclipblend.cpp:191: warning: Unrecognizable QML module/component qualifier for AbstractClipBlendNode additiveClip
qblendedclipanimator.cpp:276: warning: Unrecognizable QML module/component qualifier for AbstractClipBlendNode blendTree
qclipanimator.cpp:124: warning: Unrecognizable QML module/component qualifier for AbstractAnimationClip clip
Change-Id: Ic761f75986e41dc4ec7ab9e97e6776e49498f870
Reviewed-by: Venugopal Shivashankar <Venugopal.Shivashankar@qt.io>
|
|
|
|
|
|
|
| |
Qt3D.Animation only supports version 2.9
Change-Id: Ib300af05412e748384f988a930d14e650da6d701
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
|
|
|
|
|
|
|
| |
Make sure to catch all changed signals from the arguments classes and
re-send the arguments to the backend.
Change-Id: I0a5e2f42fce4c5ff81489d8a66ad277aa607db0c
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
|
|
|
|
| |
Change-Id: Ie11ce88441a6d287d50d1cb78365a65b2742a502
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
|
|
|
|
|
|
| |
Backend nodes should receive frontend proeperty changes
Change-Id: I19ba70d08de833aab467a51d5b21553f0b602ec6
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
|
|
|
|
|
|
| |
Will allow to update the qt5.git configuration without breaking the CI
Change-Id: I16d7e2af9da935d4d31f5909575c8edec4a9432e
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
|
|
|
|
|
|
|
| |
Static library containing helpers for unit tests to avoid having to
build the same files 200 times.
Change-Id: I89d63abbd7777a96276154298c2748e2d6774514
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
|
|
|
|
|
|
| |
qlevelofdetail.cpp:270: warning: Can't link to Qt3dRender::QLevelOfDetailBoundingSphere
Change-Id: I29b023f5a2c60a62dd7bdacf63182649dd947059
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
|
|
|
|
| |
Change-Id: Iebecab6fa362bb6bda4ee720cb0259214ced52a4
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The lights must be part of entities that are actually included in the
final scene effect layer. So the light world positions have to be
forwarded from the actual scene entities to some "dummy" light entities
that exist just for the final scene effect render step.
Also correct model / modelNormal matrices must be used for global
normal/position calculation in the GBuffer render step.
Task-number: QTBUG-46707
Change-Id: I380d2e2ecb008ab0606dcd36cd5d98dd1ec41ba6
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|