| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
| |
Now Qt3D sceneloaders plugins follow the same pattern as the rest of Qt.
This also makes the loading much more standard and less error prone.
Change-Id: Ibb5aae0a16d9d197a9c34fe2885dd5435e68d7eb
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
|
|
|
|
| |
Change-Id: I1d7241ba8177c664b5d4df4ec50afd2a7c830ff2
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This API change is part of an effort to remove anything specific to one
graphics API (in this case OpenGL) from the public APIs. In addition to
the name of the class being changed, the QGraphicsApiFilter::Api has
been refactored to reference the Graphics API, rather than an OpenGL
API. Now this list includes OpenGL, and OpenGLES, but could also include
Vulkan, DirectX, or any other graphics rendering API we wish to support
in the future. Right now the properties in this class are still
reflective of the OpenGL APIs, and may need to be extended with other
properties in the future for other rendering technologies.
The QGraphicsApiFilter::Profile enum has also been changed to be more
more clear. So for now there are enums NoProfile, CoreProfile, and
CompatibilityProfile.
Task-number:QTBUG-49078
Change-Id: Ib5f9c3b7adee5badec6bce8a12b23683eb43b4cb
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
|
|
|
|
|
| |
Change-Id: I4ca133aebad0c088296ab293f95f0a6d76d18395
Task-number: QTBUG-39946
Reviewed-by: Paul Lemire <paul.lemire@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>
|
|
|
|
|
|
|
| |
Update other aspects, tests and examples accordingly.
Change-Id: Ib1bcf0bdf4f5aec4422dc0c80bfc32b27fb1a317
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
|
|
|
|
| |
Change-Id: Ic4a69123255c33990765ea3601e01914c2d8cb70
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
|
|
|
|
|
|
| |
Updated examples and tests accordingly.
Change-Id: I8848a88472de2302aa072fa11f21ea934672b7e6
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
|
|
|
|
|
|
|
| |
Index data will be int when short is not sufficient.
Change-Id: Ic166cf2d073c99cf6c9e269e0cc1e0dac5e835fc
Reviewed-by: Pasi Keränen <pasi.keranen@digia.com>
Reviewed-by: Andy Nichols <andy.nichols@theqtcompany.com>
|
|
|
|
|
| |
Change-Id: I1f13cea4cf864dcf985d1f487e195509de9006e7
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This change effects both the qgltf tool and the gltfparser.
For the qgltf tool I change the way core profile shaders are defined.
Rather than adding an additional property to the shader object, I create
the necessary shaders, programs, and techniques, as well as add an
additional two properties to the Material so that that multiple
techniques can be used. By default the shaders support OpenGL ES2 and
is compatible with the glTF 0.8 standard.
For the gltfparser, I now create additional QTechniques from the two new
properties attached to the material object when they exist. This allows
for the use of OpenGLFilters to choose which technique to use under
certain situations. So now it is possible to render modules processed
with qgltf in the OpenGL Core profile senario.
Change-Id: Iae10f93a03c29a7bb6fe0a3dfd0d568ba0043f12
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
|
|
|
|
|
|
|
| |
We support generating gltf files using binary json rather than plain text
with our qgltf tool. This reduces metadata file sizes and load times.
Change-Id: I99a4c270aa4b0b828cddfbdcce02dce206606708
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch includes a new scene parser plugin which enables the loading
of glTF files (using the 0.8 spec) into Qt3D scenes. The gltf example
has been updated to work with the current APIs and the asset files it
used have been updated to match the glTF 0.8 spec requrements.
Previously an unused copy of the GLTF scene parser was located in
render/io. It was being built, but not used as only plugin based
sceneloaders were loaded by the renderer. Now it should be usable and
always available.
Change-Id: Ic2e31e2b63a871559aad9bad90ec2820988a1571
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
|
|
|
|
|
| |
Change-Id: I17339cfc3b7c05ee915c7b2dae359bf844c15036
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
|
|
|
|
|
|
| |
Also added a dataSize property to know the number of components per vertice (1 - 4)
Change-Id: Iaa7cee2a53958ed2ec2f603f3ffc7971c027991d
Reviewed-by: Paul Lemire <paul.lemire@kdab.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>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Previously the assimp library was a dependency that was
always built, but it is possible to use an external
system version if one is available. It is however non-
trivial to provide the dependency on platforms other
than Linux, so now we provide a copy of libassimp for
use when it is not already available.
This commit is a combination of reverting commit
672b3e47299f6ba0034f73b252d0436b55fb3085 which removed
assimp and introduced the scene parser, and adding the
logic to use the system version when available.
Change-Id: Ia05f9a92b8d82f19a0db3588b2bbeafe71404386
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Introduce a QAbstractFunctor class which QAbstractMeshFunctor and
QTextureDataFunctor subclass
Make all QAbstractFunctor subclasses implement an id() function (using
QT3D_FUNCTOR(Class)).
Use this id to compare to other QAbstractMeshFunctor and eventually
static_cast into right type if possible using the functor_cast member
function.
Change-Id: Iface956e6cd818cbef204d8fa7bf2bc23c6ffa3f
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- introduce QNode::setParent(QNode *)
- QNode created with explicit parent now invoke
QNodePrivate::_q_addChild
- QNode::cleanup introduces, need to be added to the
dtor of every QT3D_CLONABLE QNode subclass. Handles
proper destruction.
- QNode::cleanup added to all classes that should have it.
- Updated unit tests of Nodes, Entity, Scene
Change-Id: Id2c2784122a78edaae5580fe5976d88be5a1921c
Task-number: QTBUG-45947
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
|
|
|
|
|
|
|
| |
It compiles without, apparently, but it throws off QtCreator's
parser, at least.
Change-Id: I69939cdb3c28f39458488190b1169c152a339ccf
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Using PKGCONFIG_PRIVATE results in the -L/usr/lib -lassimp being placed
at the end of the linker command line rather than the start as with
PKGCONFIG.
The latter breaks the build if there is an installed system Qt5 of an
older version in the same directory as found by the assimp pkgconfig
file. The breakage is caused by undefined symbols in the older version
of Qt in the system directory.
Change-Id: I691b437eadc8b6fec385374d0910344ed194933b
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
|
|
|
|
|
|
| |
Respect aiString::length to avoid strlen().
Change-Id: I284d061da1dd62de0dda4b72da417cfbc1e99d85
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
|
|
|
|
|
|
|
|
|
| |
Also fixed material loading issue (was using wrong material index)
Note: the flag aiProcess_FlipUVs was required to have textures displayed
correctly.
Change-Id: I3f5b436fad20d6bf50c8e5ddca56f78948b44fec
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Remove multiple \namespace commands for namespace Qt3D. QDoc in 5.5
is now able to collate namespace members from multiple modules.
- Mark 'Q...Private' classes and functions taking private arguments as
\internal
- Use correct \qtvariable for Qt 3D Core and Render
- Add src/plugins directory to Qt 3D Core documentation build to
correctly generate Assimp-related documentation.
- Ensure documentation for C++ properties is visible by
using the \property command instead of documenting the
setter/getter functions.
- Add export and logging macros to qdoc ignore directives
- Remove unnecessary use of \fn command
- Language and styling fixes
Change-Id: I2481fa30ad2f6869b85c038c20ff1730b8522d46
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
|
|
|
|
|
|
|
|
|
|
| |
There were several bugs in a single place:
- aiCamera::GetCameraMatrix() produces a viewing matrix flipped around Y
- additional QMatrix4x4::lookAt() transformation has been applied
- and moreover, QMatrix4x4::lookAt(.., .., QVector3D(0, 0, 0)) produces
an invalid matrix at all.
Change-Id: Ie2a80810d76df0f0c39c3ae53adfdf52b06aafc1
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
|
|
|
|
| |
Change-Id: I171a3e44383f2f5160b24113de6d92725ed19fe9
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
|
|
|
|
|
|
|
| |
This way they are compatible with how mesh and texture source URLs
are handled.
Change-Id: Ifeee504fd3f5957d23f5cade92a73663488bdaf9
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
|
|
|
|
|
|
|
|
|
| |
Every time the assimp plugin is loaded, that file gets created.
Avoid the create and kill calls since all that achieves is to install
a null logger. According to the assimp docs a null logger is the default
anyhow, so simply remove the two lines.
Change-Id: I12dd50827218dcb07d7d5889398e9daf31789953
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
|
|
|
|
|
|
|
| |
As for preparation for Qt5.5 release the copyright header is
updated to correspond the current license requirements.
Change-Id: I36632918b66f455539453b42c369689fb11298ec
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
|
|
|
|
| |
Change-Id: I4c030458ecf15d9620d071573f911052fb5a6973
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
|
|
|
|
|
|
|
|
|
| |
* Added LoadTextureDataJob
* QAbstractTextureProvider: maximum layers property
* Automatic QAbstractTextureProvider::TextureFormat added
* material-qml should work perfectly with that patch.
Change-Id: I3f92f13b783155798772086304a30126a4fc687d
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
|
|
|
|
|
|
| |
That enforces to use one of the subclasses.
Change-Id: Idba7300ed322954ba6866c4a262ad4ee74c024e5
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
|
|
|
|
|
|
|
|
|
| |
This is done prior to the whole texture API refactoring.
Doc was also added, might need improvement later on but a base is present at
least.
Change-Id: I75589f14dfbfba7bc4250b2e0960670e020ed38a
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
|
|
|
|
| |
Change-Id: I3301a3615443bfd361de97de79b587e22517cf66
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
|
|
|
|
|
|
|
|
|
| |
The following examples now have coloring:
cpp-example
multiviewport
assimp
Change-Id: Ib068ea1f169e5eb924f3b363edd9c4f7f4ef854e
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
|
|
|
|
| |
Change-Id: I7cf85692cf86bc0c5a4aceaa3af01f9e0ef3f5ce
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
|
|
|
|
| |
Change-Id: I985366c47d2a1f721761c64b1870850071ace885
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
|
|
|
|
|
| |
Change-Id: I9c05c37b7f9576b81169c30686de96c9267e4854
Task-number: QTBUG-41542
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Target is now set in the ctor from C++. On the QML side, there's a QTexture
subclass for each target.
WrapMode on s, t, r for texture, accessible as a grouped property in QML.
Note: I left out the static fromImage as I didn't really understand their
purpose. Please let me know what I'm missing.
Change-Id: I16f75283ae459cbd8ab2d1ec53584b3022bc965b
Task-number: QTBUG-41537
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
|
|
|
|
|
|
|
|
|
| |
Each value in the enums maps directly to the correct GLint for a given
primitive patch.
This allows to still return an int to be used directly by the renderer.
This should also fix compilation error of ES2.
Change-Id: I7ec54dcb2cbb02b67fa6225bb80fb7e691687e2c
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
|
|
|
|
|
|
| |
That implied moving QAbstractMesh to Renderer as well.
Change-Id: I9013bf0458b849f7805d214a70580a80e86d8c84
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
|
|
|
|
|
| |
Change-Id: I8e4094d69446ec8290fa34e4875f5e1cf822054c
Task-number: QTBUG-41522
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
|
|
|
|
|
|
|
|
| |
This way we will avoid inconsistencies. It also means making some of the
copy() implementations more clever.
Change-Id: Ic79c9ec7c9c32f8951d5d9f5184592880bf8d5fd
Reviewed-by: James Turner <james.turner@kdab.com>
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Move almost everything to private classes.
Assimp loading restored.
All examples working.
QNode hierachy is now handled through QObject::setParent, addChild,
removeChild are part of the private api.
Note: commented QChangeArbiter unit tests as they can no longer work with this
patch and will restore them when QChangeArbiter will have been made private.
Task-number: QTBUG-41470
Task-number: QTBUG-41523
Change-Id: I4430974b3aa7f3744c38714b451b122e0cb4d0c9
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
It turns out that Assimp doesn't export the dtor of aiScene.
We used Importer::GetOrphanedScene to manage ourselved the
lifetime of aiScene. However as the dtor is not exported,
changes had to be made to let Assimp manage the lifetime
of aiScene.
It was probably working before because I had a local build of
Assimp but, the issue appears with distro packages.
Change-Id: I14f2b5c7bae1555961bc47fa335d54c2f0bc969a
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
|
|
|
|
|
|
|
| |
Note: As we are using QScene during cloning, it is important that node hierarchy
be created and added in the proper order (parent then child).
Change-Id: I8fd53f7ca696ec9aca19cc70dc116ccba4154911
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
|
|
|
|
| |
Change-Id: I18f0c46631615787a5505f7591514bfd33ac6bd0
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
|
|
|
|
| |
Change-Id: Ia6e3c3285884265b303485176109a4d2c80ccabe
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
|
|
|
|
|
|
|
| |
The AssimpParser is now a SceneParser plugin that is build if config tests for
assimp succeed.
Change-Id: I0e3f6a6ce2a43298b71b0261084f6c79521f214d
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
|
|
|
|
|
|
| |
Task-number: QTBUG-25478
Task-number: QTBUG-24409
Change-Id: If781dc949e3cd7f9b1f83fd7f9e778833d6fe595
Reviewed-by: Sergey Dubitskiy <sergey.dubitskiy@nokia.com>
|