summaryrefslogtreecommitdiffstats
path: root/src/plugins
Commit message (Collapse)AuthorAgeFilesLines
* Unify license header usageAntti Kokko2016-01-268-92/+116
| | | | | | | Update old header.LGPL3 to header.LGPL Change-Id: I8eac0cd6bbc276a56df487249cc459c0d4fab165 Reviewed-by: Jani Heikkinen <jani.heikkinen@theqtcompany.com>
* Move QCamera/QCameraLens to Qt3DRenderPaul Lemire2016-01-163-5/+5
| | | | | | | | Also get rid of Qt3DRender::QWindow and of the hard codes camera controller. Change-Id: I307735d01caf97b7a690b28de8dc99fc9866c35f Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* centralize + fix use of system assimpOswald Buddenhagen2016-01-142-10/+3
| | | | | | | | | | | | follow the foo.pri & foo_dependency.pri pattern found in qtbase to de-duplicate the code (and thus implicitly make it consistent) and synchronize the conditionals in the configure test. also document why we still can't enable the assimp sceneparser in all configurations. Change-Id: I3bdc30e077b6c9c7027a9311195c08a6c5f1fcf4 Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
* Support KHR_materials_common in the glTF parserLaszlo Agocs2016-01-072-13/+123
| | | | | | | | Map to the built-in materials as much as possible. Task-number: QTBUG-49384 Change-Id: I6c73c0cfcc327323c51ae2f3735cc7f3c53fbfee Reviewed-by: Andy Nichols <andy.nichols@theqtcompany.com>
* Use .qgltf extension for qgltf-generated glTF filesLaszlo Agocs2016-01-071-1/+1
| | | | | | | | | | 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>
* Fix leak, less copyingFrank Meerkoetter2016-01-051-2/+3
| | | | | | | | | Do not leak the textureContent array. Change-Id: I9e7ed258206f0485a02482958ba9fcf6396b3170 Reviewed-by: Kevin Ottens <kevin.ottens@kdab.com> Reviewed-by: Sean Harmer <sean.harmer@kdab.com> Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* Fix plugin name for static builds (iOS)Mike Krus2015-12-301-1/+1
| | | | | Change-Id: I6e588218f02f4d60b196d211e932ce8342588f0a Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* Move core/io content to render/geometry and ioKevin Ottens2015-12-023-7/+7
| | | | | Change-Id: I79e0b0d62e07a269ebfce99edff56d30da28494c Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* Doc: Fix QDoc warnings and do further cleanupTopi Reinio2015-11-232-1/+2
| | | | | | | | | Fix the documentation issues that still remained broken after renaming the namespaces/QML modules. Do further cleanup and minor doc editing. Change-Id: Iff38c8c1b99e7f712dc3f9ad07ecd37a747b3a26 Reviewed-by: Venugopal Shivashankar <venugopal.shivashankar@digia.com>
* Remove QAbstractTransform and friendsSean Harmer2015-11-172-6/+0
| | | | | | | | New simplified QTransform doesn't need these any longer. We now get a nice reduction in QObject count when dealing with transformations. Change-Id: I8ba8febada4ad1f05728aa848fb5e70a62028040 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* Remove transforms property of QTransformSean Harmer2015-11-172-31/+19
| | | | | | | | Compound transformations are now built up using QMatrix4x4 in both QML and C++. Updating examples accordingly. Change-Id: I03c9abf1f6cdd1b56226dc0e16a7ad5ce84516dd Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* Build pre-built packages for Linux with libassimp supportAlexander Volkov2015-11-131-2/+1
| | | | | | | | | | | | Use the bundled libassimp if we are not cross-compiling instead of explicitly specifying target platforms. It allows to build the bundled libassimp for Linux (i386/x86_64). Actually it should be possible to cross-compile libassimp, but for now the cross-compilation fails for different reasons, depending on the target platform. Change-Id: I892d5eeb4ac5e767519f136a0ed636c0a9f86fa4 Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
* gltfparser: Update to support glTF 1.0draft specAndy Nichols2015-11-131-87/+145
| | | | | Change-Id: I00e830e05c393e2e137db26b5443de5ec26870c5 Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
* Create proper plugin infrastructure for sceneloadersAndy Nichols2015-11-0413-27/+152
| | | | | | | | 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>
* assimp: Fix warnings about FileSize() const Q_DECL_OVERRIDEAndy Nichols2015-11-041-1/+1
| | | | | Change-Id: I1d7241ba8177c664b5d4df4ec50afd2a7c830ff2 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* Rename QOpenGLFilter to QGraphicsApiFilterAndy Nichols2015-11-031-13/+13
| | | | | | | | | | | | | | | | | | | | | | 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>
* d-pointer classes, private/public changesTomi Korpipää2015-10-301-3/+3
| | | | | | Change-Id: I4ca133aebad0c088296ab293f95f0a6d76d18395 Task-number: QTBUG-39946 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* Rename Renderer -> Render throughoutSean Harmer2015-10-196-40/+40
| | | | | | | | 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>
* Move Qt3DCore into Qt3DCore namespaceSean Harmer2015-10-134-26/+26
| | | | | | | Update other aspects, tests and examples accordingly. Change-Id: Ib1bcf0bdf4f5aec4422dc0c80bfc32b27fb1a317 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* Add "We mean it" warnings to private headersSean Harmer2015-10-133-0/+33
| | | | | Change-Id: Ic4a69123255c33990765ea3601e01914c2d8cb70 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* Move Render aspect into the Qt3DRender namespaceSean Harmer2015-10-136-44/+54
| | | | | | | Updated examples and tests accordingly. Change-Id: I8848a88472de2302aa072fa11f21ea934672b7e6 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* Support uint in glTF parserv5.6.0-alpha1Laszlo Agocs2015-09-011-0/+2
| | | | | | | | 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>
* Cleanup: remove QAbstractMesh/QMeshData/MeshDataManagerPaul Lemire2015-08-113-6/+2
| | | | | Change-Id: I1f13cea4cf864dcf985d1f487e195509de9006e7 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* glTF: Support generating and using Core profile and GL2 shadersAndy Nichols2015-08-082-12/+73
| | | | | | | | | | | | | | | | | | | | 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>
* glTF Parser: Support loading binary json scene dataAndy Nichols2015-08-081-1/+6
| | | | | | | | 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>
* Add support for loading scenes from glTF 0.8 filesAndy Nichols2015-08-084-0/+1553
| | | | | | | | | | | | | | | 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>
* AssimpParser converted to use QGeometryRendererPaul Lemire2015-08-072-118/+51
| | | | | Change-Id: I17339cfc3b7c05ee915c7b2dae359bf844c15036 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* QAbstractAttribute: Type abstracted with an enumPaul Lemire2015-08-071-9/+9
| | | | | | | 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>
* New Buffer API Frontend ClassesGiuseppe D'Angelo2015-08-071-30/+30
| | | | | | | | | | | | | | | - 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>
* Re-add libassimp 3.1.1 to 3rd partyAndy Nichols2015-08-022-7/+10
| | | | | | | | | | | | | | | | | 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>
* Functors: remove dynamic_castPaul Lemire2015-07-281-13/+19
| | | | | | | | | | | | | | | 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>
* QNode parent changesPaul Lemire2015-06-111-0/+6
| | | | | | | | | | | | | | | - 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>
* Add semicolon to Q_UNUSED expressionsMarc Mutz2015-06-111-5/+5
| | | | | | | | It compiles without, apparently, but it throws off QtCreator's parser, at least. Change-Id: I69939cdb3c28f39458488190b1169c152a339ccf Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* Link assimp scene plugin on hosts with a system Qt5 installedSean Harmer2015-06-061-3/+1
| | | | | | | | | | | | | | 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>
* [AssimpParser] Optimize aiString to QString conversionKonstantin Ritt2015-05-201-8/+16
| | | | | | | Respect aiString::length to avoid strlen(). Change-Id: I284d061da1dd62de0dda4b72da417cfbc1e99d85 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* AssimpParser: create most appropriate texture materialPaul Lemire2015-05-102-39/+95
| | | | | | | | | | 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>
* Doc: Fix multiple C++ documentation issuesTopi Reinio2015-04-142-29/+30
| | | | | | | | | | | | | | | | | | | - 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>
* [Assimp scene loader] Fix loaded camera orientationKonstantin Ritt2015-03-161-12/+8
| | | | | | | | | | | 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>
* [.*SceneParser] Minor clean-upKonstantin Ritt2015-03-162-21/+13
| | | | | Change-Id: I171a3e44383f2f5160b24113de6d92725ed19fe9 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* Make scene parsers operate on URLs instead of raw filenamesLaszlo Agocs2015-02-132-4/+7
| | | | | | | | 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>
* Avoid polluting the filesystem with AssimpLog.txt filesLaszlo Agocs2015-02-101-2/+0
| | | | | | | | | | 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>
* Copyright header change.Mika Salmela2015-02-094-76/+56
| | | | | | | | 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>
* Assimparser updated to use new Texture APIPaul Lemire2015-02-081-21/+75
| | | | | Change-Id: I4c030458ecf15d9620d071573f911052fb5a6973 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* Texture API refactoringPaul Lemire2015-02-081-1/+1
| | | | | | | | | | * 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>
* Make ctor of QAbstractTextureProvider protectedPaul Lemire2015-02-081-2/+2
| | | | | | | That enforces to use one of the subclasses. Change-Id: Idba7300ed322954ba6866c4a262ad4ee74c024e5 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* QTexture renamed to QAbstractTextureProviderPaul Lemire2015-02-082-5/+5
| | | | | | | | | | 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>
* Minor improvements to Qt-Assimp briging codeKonstantin Ritt2015-01-282-25/+25
| | | | | Change-Id: I3301a3615443bfd361de97de79b587e22517cf66 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* AssimpParser: use QPhongMaterial to provode default coloringPaul Lemire2014-12-311-6/+7
| | | | | | | | | | The following examples now have coloring: cpp-example multiviewport assimp Change-Id: Ib068ea1f169e5eb924f3b363edd9c4f7f4ef854e Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* Stop qmake thinking a plugin is a module tooSean Harmer2014-12-211-1/+0
| | | | | Change-Id: I7cf85692cf86bc0c5a4aceaa3af01f9e0ef3f5ce Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* renderlogging.h -> renderlogging_p.hSean Harmer2014-11-191-1/+1
| | | | | Change-Id: I985366c47d2a1f721761c64b1870850071ace885 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>