summaryrefslogtreecommitdiffstats
path: root/src/render/io
Commit message (Collapse)AuthorAgeFilesLines
* Unify license header usageAntti Kokko2016-01-2623-259/+328
| | | | | | | Update old header.LGPL3 to header.LGPL Change-Id: I8eac0cd6bbc276a56df487249cc459c0d4fab165 Reviewed-by: Jani Heikkinen <jani.heikkinen@theqtcompany.com>
* Make ObjLoader available to unit tests/benchmarksTobias Koenig2016-01-161-1/+1
| | | | | Change-Id: If9376bb6f93f4fec7a0a57401a5a3b24563b97f1 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* Don't use deprecated API for plugin loadingSean Harmer2016-01-151-2/+2
| | | | | Change-Id: I6ea0e9cc8dc296f00a0547f71cda67a9d26443a5 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* RenderView/GraphicsContext: support SSBO/UBO with buffer used as ParametersPaul Lemire2016-01-132-2/+8
| | | | | Change-Id: I347aa5deea6521b43b9033e2200ab2f8b272f671 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* GraphicsContext: use GLBuffer instead of QOpenGLBufferPaul Lemire2016-01-132-8/+17
| | | | | | | | This will be needed to simplify the process of binding SSBO/UBO buffers. Change-Id: Ice3bb97381328c5bddf1c9e46af30b4814ff2572 Note: ShaderData UBO handling temporarly disabled. Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* RenderView: sliglty modified to later accommodate compute callsPaul Lemire2016-01-131-1/+1
| | | | | Change-Id: Ic821747677c9d2f117494d2ecfd89f47f982fa3f Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* GLBuffer: modified to be used as a generic GL bufferPaul Lemire2016-01-132-7/+48
| | | | | Change-Id: I6e3b763864587ac4b12f6a458f84d3642f20b32c Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* Rename UniformBuffer to GLBufferPaul Lemire2016-01-133-18/+18
| | | | | | | | This class could be reused for any kind of GLBuffer (not just uniform buffer) so rename it accordingly. Change-Id: I978696534f64fc3717ac135af94e9fe44aa23fba Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* Replace QTextStream with QString::splitRefMauro Persano2016-01-071-38/+52
| | | | | Change-Id: I0a540dfdcbe5f28df38cf406c771c828e25abd64 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* Use QString::splitRef rather than QString::split.Volker Krause2016-01-061-1/+1
| | | | | | | This avoids countless unnecessary string allocations here. Change-Id: I5f5b474ca7b335ccb7bf1083fd85aa85e3a9e8a4 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* Avoid expensive QHash::keys() call in obj loader.Volker Krause2016-01-051-6/+4
| | | | | | | | | This hurts particularly bad here as the key type is too large for QList to be efficient, causing 140k QList node allocations with my test model. Change-Id: I46b8e347520a768d71ba6ed02d161c40e3af3c59 Reviewed-by: Paul Lemire <paul.lemire@kdab.com> Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* Move QTextStream creation out of the loop.Volker Krause2016-01-051-1/+2
| | | | | | | | This saves one QObject allocation per line of an obj file (which tend to be quite large), for the QDeviceCloseNotifier in QTextStreamPrivate. Change-Id: Ia5762f497782ee4356c2f807dd02f9ab73eccf70 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* Add we mean it headersLaszlo Agocs2015-12-151-0/+11
| | | | | Change-Id: I0ad651a68441d3cd0f836c37304cdcb1effac455 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* Added parameters to signals and made setters Q_SLOTSTomi Korpipää2015-12-094-10/+11
| | | | | | Change-Id: Icec2f9f207221e35ffdeeb594bb9b4dc6ef890f1 Task-number: QTBUG-49797 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* Move core/io content to render/geometry and ioKevin Ottens2015-12-023-0/+135
| | | | | Change-Id: I79e0b0d62e07a269ebfce99edff56d30da28494c Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* QAxisAlignedBoundingBox is used only in ObjLoaderKevin Ottens2015-12-024-2/+253
| | | | | Change-Id: Iee0c2b50985d6c87f196877544f501eab33f6d37 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* Doc: Fix QDoc warnings and do further cleanupTopi Reinio2015-11-231-1/+1
| | | | | | | | | 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>
* Added support for partial OBJ mesh loadingMike Krus2015-11-212-22/+53
| | | | | | | | | | | | | | | Added a subMesh string property to the QMesh class. This is passed to the ObjLoader and, if not empty, it will only load the sub meshes at match. The string is assumed to be a regular expression against which sub mesh names are matched. If the string is not a valid regex then a valid one is constructed. Change-Id: Iecc39af8a41429bb924fb1e3e47d8cbdb9ff1086 Reviewed-by: Paul Lemire <paul.lemire@kdab.com> Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* QSceneLoader: do not leak built scenePaul Lemire2015-11-162-3/+5
| | | | | Change-Id: Id1649bf16330dba009549f3f7e0eab3aef0fadba Reviewed-by: Andy Nichols <andy.nichols@theqtcompany.com>
* Fix some syncqt warningsLaszlo Agocs2015-11-131-1/+1
| | | | | Change-Id: Id02b9c0664054bfbdef2a0c52e2d51383c4e5bfc Reviewed-by: Andy Nichols <andy.nichols@theqtcompany.com>
* Create proper plugin infrastructure for sceneloadersAndy Nichols2015-11-049-28/+316
| | | | | | | | 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>
* Remove some uncessary QOpenGL* includesAndy Nichols2015-11-031-2/+0
| | | | | | | These includes seem to be left over from previous iterations. Change-Id: I58945b72c354bfa8ebbe687d52d3eb146f021f70 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* Qt3DRender::QAbstractSceneLoaderPrivate: Remove unnecessary exportAndy Nichols2015-10-301-2/+1
| | | | | Change-Id: If8b16f7a9d638f3dc18f719652647297d09842dc Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* Rename Renderer -> Render throughoutSean Harmer2015-10-1910-21/+21
| | | | | | | | 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>
* Uniform Buffers: try to minimize bind / unbindPaul Lemire2015-10-142-4/+16
| | | | | Change-Id: I52c7d3fd3ff50211f2869df7e81e70ca1475d245 Reviewed-by: Andy Nichols <andy.nichols@theqtcompany.com>
* Move Qt3DCore into Qt3DCore namespaceSean Harmer2015-10-1312-46/+46
| | | | | | | 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-136-0/+66
| | | | | Change-Id: Ic4a69123255c33990765ea3601e01914c2d8cb70 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* Final batch of file moves for nowSean Harmer2015-10-1314-715/+430
| | | | | Change-Id: I0c9e83e3142e6b083feb2cbcabcc4279de64b95b Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* Remove Q prefix from graphics helpersSean Harmer2015-10-132-13/+13
| | | | | Change-Id: I79066df0df1fbac4f49e47c91c552fca0d4093bf Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* Rename RenderShader -> ShaderSean Harmer2015-10-131-1/+1
| | | | | Change-Id: Iafdfc44bdc97c53974a2d47834a61914be06ac25 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* Rename RenderShaderData -> ShaderDataSean Harmer2015-10-131-1/+1
| | | | | Change-Id: I254f2205cd1587bb599d26a087c515d526bf289b Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* Move Render aspect into the Qt3DRender namespaceSean Harmer2015-10-1316-74/+78
| | | | | | | Updated examples and tests accordingly. Change-Id: I8848a88472de2302aa072fa11f21ea934672b7e6 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* Assert on packed input data in TexImageData::setImage.Fredrik Orderud2015-09-211-0/+1
| | | | | | Task-number: QTBUG-48330 Change-Id: Ib31ff05c434d75b3533bc9b4b1879bc907320555 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* Fix ICC warning of change of signThiago Macieira2015-08-311-1/+1
| | | | | | | | uniformbuffer.cpp(54): warning #68: integer conversion resulted in a change of sign Change-Id: I42e7ef1a481840699a8dffff13fed7c59b4ee503 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* Always Flip UV Coordinates in ObjloaderAndy Nichols2015-08-201-0/+2
| | | | | | | | | | | | | | | | | | | Currently if you use a QMesh that has its geometry loaded from an obj file, the UV coordinates are such that the default loading behavior for textures is inversed over the Y axis, and now any textures provide must be preprocessed to be inversed over the Y axis as well. This is not consistent with the behavior of our scene loaders which allow for Textures to be loaded normally (right-side-up) and still get sampled correctly. This is because the scene loaders make sure to flip the UV coordinates when loading the asset. To be consistent, we now the UV coordinates when loading QMesh geometry with the Objloader. [ChangeLog][Qt3DRenderer][Objloader] UV Coordinates are now always flipped when loading QMesh Geometry from an obj source. Task-number: QTBUG-46815 Change-Id: I8c3ee5de5c8bbaf5967ef81059ed97eb85901ac2 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* Add support for ETC1 compressed textures in PKM containersLaszlo Agocs2015-08-172-1/+38
| | | | | | | | | | | | | | The PKM format is easy to generate via f.ex. Android's etc1tool and most GLES2 drivers come with support for GL_OES_compressed_ETC1_RGB8_texture, making ETC1 ideal when targeting embedded/mobile. Tested with Mesa (Intel, GL ES 3.0) and etc1tool. It is important to keep in mind that mipmap generation may not be supported for compressed textures, depending on the driver. Change-Id: I8b0ff7b44a6684be714507f6c3e201493b60e57c Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* Cleanup: remove QAbstractMesh/QMeshData/MeshDataManagerPaul Lemire2015-08-114-414/+0
| | | | | Change-Id: I1f13cea4cf864dcf985d1f487e195509de9006e7 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* Add support for loading scenes from glTF 0.8 filesAndy Nichols2015-08-083-1277/+0
| | | | | | | | | | | | | | | 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>
* QMesh converted to QGeometryRendererPaul Lemire2015-08-072-28/+28
| | | | | | | Uses a QGeometryFunctor to build the whole geometry Change-Id: I86e39872759c5e68cd3b6526af6c033bacc4c82e Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* QGeometryFunctor: will allow to load whole geometries as jobsPaul Lemire2015-08-072-1/+69
| | | | | Change-Id: I516c7b908147af05e34e6aa417a1028505e00ee9 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* QAbstractAttribute: Type abstracted with an enumPaul Lemire2015-08-074-99/+99
| | | | | | | 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>
* QBuffer/RenderBuffer: add a functor propertyPaul Lemire2015-08-073-0/+29
| | | | | Change-Id: Ic896425284c69a4cd71365b592444ce7edbc2dc2 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* QBufferFunctor: provides a way to load buffer data in jobsPaul Lemire2015-08-072-1/+67
| | | | | Change-Id: If3cb6c55ea80191c87470d8bed7a5a0c7b16d214 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* QAbstractBuffer/QBuffer cleanupPaul Lemire2015-08-072-47/+0
| | | | | | | | Remove method that aren't needed anymore since the backend takes care of creating and abstracting resources to be used with the Graphics Rendering API Change-Id: Ib862fed16a4a775abfe85b707e33294f53a5b1a1 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* QAttribute: Add default attribute names getterPaul Lemire2015-08-072-0/+31
| | | | | Change-Id: I4b5a45c4486cd9210f1a3f81683508c5c48b82ef Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* New Buffer API Frontend ClassesGiuseppe D'Angelo2015-08-0712-115/+282
| | | | | | | | | | | | | | | - 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>
* Functors: remove dynamic_castPaul Lemire2015-07-281-18/+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>
* TextureDataManager/TextureImageData improvedPaul Lemire2015-07-242-1/+15
| | | | | | | | | | | | | * Removed RenderTextureProvider which was never used * Add cleanup method in TextureImageData to reduced memory consumption when waiting for the object to be recycled by the resources manager * Improved the TextureDataManager to keep track for each functor of all the associated TextureImages which allows to release TextureImageData that we don't need to keep Change-Id: Id805fc0e7ef8d7c586eb77382bc66cd5e4cc8107 Task-number: QTBUG-47223 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* Enable Attribute::dump() to dump useful dataAndy Nichols2015-07-231-13/+17
| | | | | | | As opposed to just random data Change-Id: I146a44bf8adfc35eb166943a6ad2d59ce323be5d Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* Fix obj loader out of range access with textureless facesJoni Poikelin2015-07-091-1/+1
| | | | | | Task-number: QTBUG-47123 Change-Id: Ied616d357af6b6043fc6c55c3af20581f79c565b Reviewed-by: Sean Harmer <sean.harmer@kdab.com>