| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
QAbstractAttribute: remove the QByteArray data Q_PROPERTY as QByteArray isn't
properly handled from QML. Manually call QChangeArbiter notification when the
setData method is called.
Quick3DBuffer contains a QVariant data Q_PROPERTY. Using a method that
converts a QVariant to a QJSValue and then reads the proper JS typed array to
build a QByteBuffer all from QML.
Change-Id: Id777f34de2c166b2345faa25ecbc84d12a9ea352
Reviewed-by: Andy Nichols <andy.nichols@theqtcompany.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Switch QAbstractAttribute and QAbstractBuffer to QNode subclasses
- Get rid of all shared pointer when dealing with these (needed to expose to
QML and use the QObject ownership)
- Introduce QGeometryRender, QGeometry, QAttributeProvider,
QAttributeAggregator.
A QMesh component now is:
a QGeometryRenderer which specifies its QGeometry.
The QGeometry refererences n attributes. Each attribute references a QAbstractBuffer.
Change-Id: I49a10c11a605e5fe7c180af86a404f622e763f48
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
|
|
|
|
| |
Change-Id: Ib5a6ea27610dfad3352adacd57c8f0f02c97f31f
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
|
|
|
|
| |
Change-Id: I63ea3ddcd16034b4fb2d75cb8d5a90e7f557fd5e
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
|
|
|
|
|
|
|
| |
QStateSet,Quick3DStateSet registered as an extended object under the StateSet
name.
Change-Id: I4334958ab55e403c532f3c200eb273925403dcb5
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
QML allows property var array: [] of simple types only.
We can't use a var property to store an array of ShaderDataObject so
Quick3DShaderDataArray was introduce to overcome that issue.
It contains a QQmlListProperty<Quick3DShaderData>.
This is only needed for QML, in C++ providing a QVariantList of QShaderData is
enough.
Change-Id: I768f5189252c219c5a1718b4c4da128bbaff008e
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Quick3DShaderData subclasses QShaderData. QShaderData now provides a
PropertyReaderInterface that returns a correct QVariant from the QVariant
return when reading a QProperty. That way Quick3DShaderData properties (var)
can be transformed to a QVariantList that the Renderer can use without
introducing a QtQml dependency in core.
RenderShaderData was updated to use propertyReader as well on creation and
NodeUpdated events.
A QJSValue -> QVariantList QMetatype converter was introduced to ease that
process.
Change-Id: Ifde5e7b85a1a84342846cd0ac0f047bd2c6ec4ef
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
|
|
|
|
|
|
|
|
| |
The Quick3DParameterPrivate reimplement a setValue method that takes care of
converting a QVariant containing a QJSValue array to a QVariantList that can
be handled by the backend.
Change-Id: I768d1d863c853d4f81c70f098d8689e3c0149baa
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
|
|
|
|
| |
Change-Id: Iea81b62a0bfc424654764c68871a7120e8f888cd
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
|
|
|
|
|
| |
Change-Id: I5a62e337fcb0b1b5dd8185e15bfb637d6564ca1d
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
|
|
|
|
|
|
|
| |
It includes private QtQml headers. Therefore, it's also private.
Change-Id: Ic717e04e762193abdf4da2398269d75d8fc240c8
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
|
|
|
|
|
|
|
|
| |
Default property forces all children of a QFrameGraphItem to be
QFrameGraphItem themselves so as to avoid users inserting QNode in the
FrameGraph tree.
Change-Id: I7551514c128a9d150ce6abc79ba21d3c0ef89e8a
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
|
|
|
|
|
|
|
|
|
| |
* Created proper cpp and private header files
* FrameGraphItem is now a subclass of Node instead of an interface
* Removed multiple inheritance in Framegraph items
* Proper d-pointers in each classes
Change-Id: Icb1d4a917a05325135f5252ef4d891ad6f3aa17b
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
|
|
|
|
|
|
|
| |
Also created quick3drenderpass extension to have a QQmlListProperty of
RenderPassCriterion.
Change-Id: I07769ab7c7098df023aac95cf5c6e3c8e54828ec
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
|
|
|
|
|
|
|
| |
Note: QML rendering still not working at that point, should be resolved in
follow up patches.
Change-Id: I5ca123191474cf06b7c0d61c4dcfa144a9eb972a
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
|
|
|
|
|
|
|
|
| |
Separated Texture from TextureData. Quick3DTexture is a sublcass of
Quick3DNode and Texture. This is part of a serie of patches aimed at specifying
how Uniforms and Textures are going to be defined from QML.
Change-Id: Ia1a9acfc4d9b07299a103bdbbffcc34aa4b79177
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
ShaderPropertyParser subclasses QQmlCustomParser. It allows to register Quick3DEffect
using qRegisterCustomType so that properties that are not parsed by the standard Qml
Engine can be parsed using the ShaderPropertyParser.
ShaderPropertyParser does nothing at the moment but show the type and name of
the properties. It will be completed later on when the declaration Uniforms
property from QML is determined.
Also Quick3DMaterial and Technique could be registered as CustomType using
ShaderPropertyParser as well so that we can define uniforms in Effect,
Material and Technique, Material overriding Technique and Technique overriding Effect.
Change-Id: I70d7b9a6112b929a71a814aaa44646881e78972f
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
|
|
|
|
|
|
|
|
|
|
| |
Examples updated to work with those new nodes. Quick3DScene and SceneNode
subclass Quick3DEntity, Scene and EntityNode, Scene respectively. This will
later ease the process of exposing Cameras loaded from a scene file to be used
by a CameraSelector in the FrameGraph. Also it allows to add children Node to
the scene on the Qml side.
Change-Id: I6843efd0aff60e51a9bd16c63ce19011afd5a8e5
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Effect has been transformed to a non QObject abstract. EffectNode and
Quick3DEffect subclass Effect. This was needed so that Quick3DEffect can have
node children such as ShaderProgram.
Few changes to the backend and renderer to accommodate that a Material's effect
is now returned as a Node instead of an Effect as an Effect cannot be
registered as qml types as it has no QObject base.
Change-Id: Ief40f1d784151a085f244c35b3ed09a93dcc153e
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
|
|
|
|
|
|
| |
Moved the QQmlListProperties used for tags and renderpasses out of Technique.
Change-Id: I9cfe3eb5f1a78528e1b67ebb8bd24a768c328d5e
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
|
|
|
|
|
|
|
|
| |
Quick3DMaterial exposes a QQmlListProperty of Tags that are used to set
Material parameters and texture. In the near future that may be replace by a
custom QQmlCustomParser.
Change-Id: I7381691a77768b6f76265ef30b68ab033504c166
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
|
Quick3D components for core and renderer have been moved to their own module.
For each module, a QQmlExtensionPlugin has been created and is installed in
qtbase/qml/Qt3D/.
To use the Qml API, 3dquick needs to added in the .pro.
3dquickrenderer can be added if subclassing Quick3D elements defined in
Renderer. Otherwise, appending it is not necessary as the Qml engine will
automatically load the QQmlExtensionPlugin.
Core has no more reference to the QML module. Qt3DRenderer still has
references to the QML module which will be remove in follow up patches.
Change-Id: I0cd5cbd27020c776b9eb8d1548514df2b1321bbd
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|