Custom-mesh-cpp example now has
OrbitCameraController instead of FirstPersonCameraController
Part of the examples cleanup.
Change-Id: Ia0fcfb7727a50684af66f56db0721a832491a5f2
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Custom-mesh-qml example now has
OrbitCameraController instead of FirstPersonCameraController
Part of the examples cleanup.
Change-Id: I12aa8ccd6ba6e86ecb67f46a7c86e1da0a5695f2
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Loader-qml example now has OrbitCameraController
instead of FirstPersonCameraController
Part of the examples cleanup.
Change-Id: Ic5839aff5579bedffa9976199b294ea4984b3b8f
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
MouseInput-Qml example now has OrbitCameraController
instead of FirstPersonCameraController
Part of the examples cleanup.
Change-Id: I1e4249a5b74147e44900cfacb023d47cad1b1a9b
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Simple-Cpp example now has OrbitCameraController
instead of FirstPersonCameraController
Added line setting view center to be a more
complete example.
Part of the examples cleanup.
Change-Id: Ib59d9cc8263e082c4ddce64ad129493fba044ae1
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Simple-qml example now has OrbitCameraController
instead of FirstPersonCameraController.
Camera was also moved to -40 as the lightsource
was the otherside of the Torus.
Part of the examples cleanup.
Change-Id: Ib30b53c1e9d01c4dc09f7907683ea7ea2352c492
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Simple-Shaders-Qml example now has
OrbitCameraController instead of FirstPersonCameraController
Part of the examples cleanup.
Change-Id: Ifbcc1103f1678e1ddc23b8b8f238f0011b051e64
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Tessellation example now has OrbitCameraController
instead of FirstPersonCameraController
Part of the examples cleanup.
Change-Id: I823469d149147cf9f253d14e6d60d561a7539b9e
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Note that the deferred-renderer-qml example never worked for me
so I can't completely confirm if it is repaired or not.
Change-Id: I8d39e69b755b25cc018dbefc22244af9bb621735
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Don't reinvent a variable naming system (string based global variables
even) and instead use pointer to QLayer instance everywhere, even with
QLayerFilter.
The wave and deferred-renderer-cpp examples have been ported to the new
API.
Change-Id: I82a858770954a8743a5c3d2ce0c463e62844871f
Task-number: QTBUG-51440
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Allows the example to run. Keyboard input not working yet.
Change-Id: I2c152ba6b15878e1bbaad865a7147b66a7911e50
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
Renamed the QOrbitControl to QOrbitCameraController
to be more in line with the FirstPerson version.
Change-Id: Ibf5fb0d3cc548b7dc25d56ea385a64c7a76770aa
Task-number: QTBUG-50660
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
The axis property of QAxisInput goes there.
Change-Id: Ie226de652848909fc6e3a425612d877ef18b35f3
Task-number: QTBUG-51474
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
Placed buttons and scale into a new class
named QButtonAxisInput
Change-Id: I0e8407dc361d9d6eda38973a8950f77b17119467
Task-number: QTBUG-51474
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
Also created a Quick3DExtras for QML related extras (Qt3DQuickWindow)
Change-Id: I1b95ea841e07ac8d68a07a1911d783b722e6fe03
Reviewed-by: Sean Harmer <sean.harmer@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>
Make sure right dependencies are built and resources are loaded
Change-Id: Ia3693c2d0df8849c544a9b6d346168cd4569a26c
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
QT3D_CLONEABLE now implements a default dtor that calls _q_ cleanup
QT3D_CLONEABLE_CUSTOM_DTOR is used for classes that really need to implement
their own dtor but they need to invoke _q_cleanup manually
Change-Id: I2937a3b9edeb5a763749f0044360d78ab4461a5e
Task-number: QTBUG-51464
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>
Also, this was poorly duplicating code from the other ctor and would have
crashed due to an uninitialized m_forwardRenderer.
Change-Id: I5f4a04868362d07fe726931add986e1e2a415271
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Wave itself now shows but gradient background is missing
Change-Id: I97c828a05eb1c76ecdf010762f1ca80995012835
Reviewed-by: Volker Krause <volker.krause@kdab.com>
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
In such a scenario we were creating desktop surfaces, which GraphicsContext
is missing the code to handle in ES2 builds. It thus left parts of its
internals uninitialized, and subsequently crashed.
Change-Id: I359597d48287f0ac75acb8d875d55197da7fb8a2
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
And remove Q_OS_BLACKBERRY, it no longer exists.
Change-Id: Iad6d2faa5d9a3c13850d5699cc43caf197781473
Reviewed-by: Volker Krause <volker.krause@kdab.com>
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Adding an Orbit control that will allow a user to orbit / pan in a 3D
QML scene.
--- QML
- LMB translate
- RMB orbit
- RMB + LMB dolly
- Arrow keys translate
- Shift + Up/Down keys dolly
- Alt + Arrow keys orbit
--- CPP
- LMB translate
- RMB orbit
- RMB + LMB dolly
- Arrow keys translate
- Shift + Up/Down keys dolly
- Alt + Arrow keys orbit
Both examples have their speed inputs clamped to -1 and 1
Zoom in can now be limited
Change-Id: If24c45c7350767a1682dccfd2e4d49d95433fd5d
Task-number: QTBUG-50660
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
By default the absence of a QNoDepthMask node in a RenderStateSet implies
depth mask is enabled. Its presence, disables it.
Change-Id: Iaa22b6cee12ee76e64d66a00e97f8aadfa82398b
Task-number: QTBUG-51433
Reviewed-by: Sean Harmer <sean.harmer@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>
This makes at least the first scene in the example show up again.
Change-Id: Ife23dc180cabd223ad824aa377f6631d58651890
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Comment: code still hold a QStencilOpSeparate, might want to rename it to
QStencilOperationSeparate ?
Task-number: QTBUG-51422
Change-Id: I5caf4e26720647ddb9a8b596b9dd33561fb90a08
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Have only one picking property returning a pointer to that object (grouped QML property)
Backend still has everything in one class though
Task-Id: QTBUG-51506
Change-Id: Ib9626420a8ee86ad28168db02b171355499f87e3
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Users may want to explicitly choose a rendering policy,
e.g. RenderOnDemand or AlwaysRender.
Change-Id: I465c5ac671134e7bf42fbd950e475f86edc3a321
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
QFrameGraph did store just the Frame Graph Root, and was not configurable
at runtime. This functionality has been moved to QRenderSettings.
The renderer now gets the scene graph root directly from QRenderSettings.
Change-Id: I3012eb96b8073717f96f5e42374859a3f4a89bfc
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
added 'None' to the enum
renamed Loaded to Ready in the enum
As per API review
Change-Id: I13b42460c5f080b904b5191e59b8a6e876cc4ee4
Task-number: QTBUG-51481
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Carried changes into the QML examples (planets and
shadow map) for both PolygonOffset name changes
As per API review
Change-Id: Idd2676d53794eb6025696a79ddb59a26ac98b085
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
BlendMode became BlendFunction
mode became blendFunction
removed Func prefix in enums
As per API review
Change-Id: I95271abc3ba4b8d04b3caf46845e1a5e47d47322
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
red -> redMasked
green -> greenMasked
blue -> blueMasked
alpha -> alphaMasked
Change-Id: I5df99a6cf79b77ee344c9b9e45c940b084b65ad7
Task-number: QTBUG-51437
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
As per API review
renamed FooAttachment to just Foo
Change-Id: Ifd977b2b8bdb6706a70dd10f2ea3ee6a381c26b8
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
As per API review
New name was better fitting to the actual description/usage
Renamed point to attachmentPoint
Change-Id: Id14a312acabdcc9bda49a4d30efe490342105660
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
func renamed to stencilFunction
ref renamed to referenceValue
mask renamed to comparisonMask
As per API review
Task-number: QTBUG-51423
Change-Id: Ic792e191767ffd88c96d6398536fbe83fc800d5b
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
As per API review
renamed keys to buttons as it is more descriptive
Change-Id: If0907b382a863d64bd8d86e2796613767a1fd12b
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
- Remove QAxisActionHandler
- Remove AxisAxtionHandler, AxisActionPayload, UpdateHandlerJob
- Make QLogicalDevice a QComponent
- QAction sending action active update to frontend
- QAxis sending axis value update to frontend
- QFirstPersonCameraController rewritten in a more efficient manner
Change-Id: I09a83f95b97238e4393a88103f76d8ba93e1403d
Reviewed-by: Paul Lemire <paul.lemire@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>
As per API review, name property is not needed as we can simply
use the QObject::objectName property.
Change-Id: I575c658a4af68145b50ad03e55971856479225e6
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
In the examples, defer the creation of the various qt3d bits until
after the default format is set. This way it will be picked up by qt3d
and all contexts will have the same format.
Maybe the MacOS QPA should be changed to always create the highest
possible OpenGL context rather than sticking to 2.0 by default.
Change-Id: I33079c0328e0edd9c6c6b01fba7283d019880594
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Updated license headers to use new BSD header instead of LGPL3 one
(in those files which will be under BSD)
Change-Id: I300c5840db3fd4708d5d85e84f7c6729cba326e5
Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
QDoc doesn't allow a macro that expands into an empty string:
src/core/nodes/qcomponent.cpp:189: warning:
Unknown command '\TODO'
Linking issues that are fixed by adding a dependency to Qt GUI:
src/input/frontend/qkeyevent.cpp:121: warning:
Can't link to 'QKeyEvent::nativeScanCode()'
src/input/frontend/qkeyevent.cpp:141: warning:
Can't link to 'QKeySequence::StandardKey'
src/quick3d/quick3d/qquaternionanimation.cpp:42: warning:
Can't link to 'QQuaternion'
Other fixed warnings:
src/input/frontend/qmousecontroller.cpp:54: warning:
Unknown command '\intantiates'
src/quick3d/quick3d/qquaternionanimation.cpp:42: warning:
C++ class Qt3DCore::Quick::QQuaternionAnimation not found
src/render/materialsystem/qparametermapping.cpp:85: warning:
Undocumented enum item 'UniformBufferObject'
Undocumented enum item 'ShaderStorageBufferObject'
examples/qt3d/wireframe/doc/src/wireframe.qdoc:28: warning:
Can't link to 'BasicCamera'
Change-Id: Iea8f591bd09f0b8895dc568a48f2bfe80f2fe73d
Reviewed-by: Venugopal Shivashankar <venugopal.shivashankar@digia.com>
Added triangle visitor by refactor the triangle volume extractor
Added ability to do a ray intersection with a single volume without using a thread
Added entity collector
Use one thread for each entity
Ignore entities that don’t have a pick object
Removed list of triangle volumes stored on each entity
Use triangle visitor to test each triangle by creating a single volume on the stack
Added triangle and 3 vertex index to the pick event
Change-Id: Id3fd53549bf3ea07805426ef868df174f30e176b
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Added image of running example to documentation of Audio Visualizer.
Change-Id: I662106db0b960aac4eaff9c1cbf18b0223bb62aa
Reviewed-by: Tomi Korpipää <tomi.korpipaa@theqtcompany.com>
Reviewed-by: Pasi Keränen <pasi.keranen@theqtcompany.com>
Getting rid of set data and the refactoring on setting the surface implies
that:
- Given the FrameGraph configuration, there may be several RenderViews
each having a different RenderSurfaceSelector/Window
- This means that the Renderer/QRenderAspect can't know about the surface
before reading the scene
- This means that the Renderer may be dealing with more than 1 window
- This means that initialization, render and shutdown procedures will have to
be updated accordingly
Therefore the Renderer was refactored to:
- Be initialized without knowing about a surface
- For each RenderView, check the surface and if different from the previous
one:
* Make the context current with it
* Create the appropriate glHelpers (as Surfaces may have != formats)
TO DO:
- Fix picking
- Fix windows exposition
- Fix shutdown / detection of all windows beging closed
Change-Id: I49d070b05f46be4b26cfb57e494feba145d1da9c
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
Example visualizes the magnitude of music played as animated bars.
The music is played using media player. Implementation combines
the use of Qt 3D rendering with Qt Quick 2D elements.
Change-Id: I945d50d0dbd26151f274269649cca793a5ad4d27
Reviewed-by: Tomi Korpipää <tomi.korpipaa@theqtcompany.com>
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@theqtcompany.com>
Reviewed-by: Pasi Keränen <pasi.keranen@theqtcompany.com>
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
handle device pixel ratio and none full-window Scene3D
Change-Id: Iadc504a00816d9363847bf9ec1e09d4b7c631666
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
Existing shapes have been moved outward to 5 and -5 x.
Cone and plane were then added at x: 0
Task-number: QTBUG-41548
Change-Id: I65a3a1998b010179e4171686f71d52ce42e112ec
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Allows to restore most of the QML examples using this approach until a
more permanent solution can be developed (I have an idea on how to do
this and will try it today).
Change-Id: I9b9bb86a5323140be3ed2456cdfa91b1f93187b1
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
This will allow to easily set for e.g. clear color from a C++ app
even before the window is shown.
Change-Id: I343b68d2fd1a3a37f99f3437afb900597fe02390
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
Not sure how this got removed from this and other examples.
Change-Id: I0ecf88d48052d63dfe5bbac0767ace8e13e9b662
Reviewed-by: Paul Lemire <paul.lemire@kdab.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>
Contains:
Qt3DWindow
Qt3DQuickWindow
QFirstPersonCameraController
FirstPersonCameraController.qml
This will allow to get rid of the Camera configuration hack
Change-Id: I55c5634aa4c162f9dd2852d3258073a6352b426c
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
This wasn't needed before because the TechniqueFiltering was broken.
This is now needed to respect the intended behavior.
Change-Id: I4f28e9757a6e726ab45a7806a74b34553e700aea
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Wine is complex and not ideal for a getting started example.
Instead, use three of the simpler scenes.
Change-Id: I6859714e14c47c4907e85a48cde27d0ea5748ffa
Reviewed-by: Andy Nichols <andy.nichols@theqtcompany.com>
From : -12 / -4 to 4 / 12. Obj file updated and
rotated 90deg on the X axis. Rotation sliders
for x, y and z corrected to all start on 0.
Change-Id: I43850a421029d1aef8f2f65526ce507ab22fef2b
Task-number: QTBUG-49800
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Let's avoid future confusion by using a custom extension for the
main JSON document. In case assimp gets upgraded to a future version
supporting glTF files for example, confusion can arise due to the
conflicting file extensions in the scene parser plugins.
Change-Id: I370cc45cc399cae4f425d86574ccea9cd6c59d4f
Reviewed-by: Andy Nichols <andy.nichols@theqtcompany.com>
From y: -100 to y: 80, z: -120 to z: 120
upVector Y changed to positive
Wine: z: -50 to z: 50 and removed angleX rotation
which was initially needed due to negative upVector
Change-Id: I054d1c18c5a3e6f68c9a3ddf4ea7d2a7f28c90a5
Task-number: QTBUG-49800
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>