summaryrefslogtreecommitdiffstats
path: root/tools/qgltf/qgltf.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Replace Q_DECL_OVERRIDE with overrideKevin Funk2017-09-251-12/+12
| | | | | Change-Id: I92c955068e233c50043ad7d06a32300dd386c24d Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* Use multi-arg where possible (clazy reports)Mike Krus2017-05-021-4/+4
| | | | | Change-Id: I333e65e3173077c53ffae8cff3c2c1c37da6bd26 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* Fix double -> float conversion warningsSean Harmer2017-02-061-1/+1
| | | | | | Change-Id: I7eac42f170de92bb34b69e72855e0b5de514de8c Reviewed-by: Mike Krus <mike.krus@kdab.com> Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* Use the static QFileInfo::exists(), it's fasterSergio Martins2016-12-101-1/+1
| | | | | | | | It's stated in the documentation that it's faster. Fixes all clazy-qfileinfo-exists warnings. Change-Id: If80805f5144ddf765b4ed9d54f3aab842c21725f Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* GLTF Scene export pluginMiikka Heikkinen2016-11-161-3/+3
| | | | | | | | | | | | | | | | | | | | | | Added a plugin that can export Qt3D entity tree as a GLTF scene. The GLTF format is extended a little to support those cases not covered by standard format. The existing GLTF import plugin was modified to support cases it didn't already support. Any meshes, transformations, default materials from Qt3DExtras, cameras, and lights can be exported and imported. Other components are ignored. Adding support for custom materials is left for the future. The camera fov unit (degrees vs radians) was also fixed to qgltf tool to make it consistent with both assimp and GLTF specs, as well as the fixed implementation in the importer plugin. Change-Id: Iaa0aa6656429abb173f291fb1a768bf98819ac84 Reviewed-by: Tomi Korpipää <tomi.korpipaa@qt.io> Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* qgltf: eradicate all Q_FOREACH loopsMarc Mutz2016-09-271-50/+62
| | | | | | | | | | | | ... and mark qgltf as Q_FOREACH-free, using QT_NO_FOREACH. In writeShaders(), also port two indexed loops to range-for. Saves almost 6KiB in text size on optimized GCC 6.0 Linux AMD64 builds. Change-Id: Id281b077159f461c01c23600f6cb301a6aa34b9e Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* qgltf: replace some QStringLiteral with QLatin1StringMarc Mutz2016-09-271-3/+3
| | | | | | | | | | | | | The first two lines are implicated in a compile error in a follow-up commit that introduces C++11 ranged for loops, so take another shot in the dark and remove the lambda expression embedded in the QStringLiteral macro by using QLatin1String instead, which, this being in a QStringBuilder expression, is even a desirable change in itself. Change-Id: I1ccd8d2e3c23cefdd50e7bc71f3f95dbeac78b72 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* qgltf: mark types movable/complexMarc Mutz2016-05-191-0/+19
| | | | | | | | | | All structs are Q_MOVABLE_TYPE, except Node, whose address is used as its identity, so by definition it is not trivially relocatable. Therefore explicitly marked as Q_COMPLEX_TYPE. Change-Id: I338491a57cc0f70b3971dec34b7dd9d913a92462 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* qgltf: fix GCC 6 warning about misleading indentionMarc Mutz2016-05-081-1/+2
| | | | | | | | It's even a true positive. Braces were missing. Change-Id: Ie807c46659ad4085751bc78b86408ce1001e1daf Reviewed-by: Frank Meerkoetter <frank.meerkoetter@basyskom.com> Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* Q_NULLPTR -> nullptrSean Harmer2016-05-011-7/+7
| | | | | | Task-number: QTBUG-52736 Change-Id: I58f9cbcdf018e7b672d33dd865067485412b79fe Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* Merge branch '5.6' into 5.7Sean Harmer2016-04-161-6/+8
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: examples/qt3d/examples-common/qorbitcontrol.h src/core/qnodecreatedchange.cpp src/core/qnodecreatedchange.h src/input/frontend/qaxisactionhandler.h src/input/frontend/qinputaspect.h src/input/frontend/qkeyboardhandler.h src/input/frontend/qmousedevice.h src/input/frontend/qmousehandler.h src/input/frontend/qphysicaldevicecreatedchange.h src/input/input.pro src/logic/qframeaction.h src/plugins/sceneparsers/assimp/assimp.pro src/quick3d/imports/input/importsinput.pro src/quick3d/imports/render/importsrender.pro src/render/backend/trianglesextractor.cpp src/render/framegraph/qclearbuffer.h src/render/framegraph/qlighting.h src/render/framegraph/qstateset.h src/render/frontend/qrenderattachment.h src/render/geometry/qabstractattribute.h src/render/geometry/qabstractbuffer.h src/render/geometry/qattribute.h src/render/geometry/qboundingvolumespecifier.h src/render/geometry/qbuffer.h src/render/materialsystem/qfilterkey.h src/render/materialsystem/qparameter.h src/render/materialsystem/qparametermapping.h src/render/renderstates/qblendstate.h src/render/renderstates/qdepthmask.h src/render/renderstates/qpointsize.cpp src/render/renderstates/qrenderstatecreatedchange.cpp src/render/renderstates/qstencilop.h src/render/renderstates/qstencilopseparate.h src/render/renderstates/qstenciltestseparate.h src/render/texture/qabstracttexture.h src/render/texture/qabstracttextureimage.h src/render/texture/qtextureproviders.h Change-Id: I894d7781042cabdaa0cac690c198b57a41127bd4
| * Fix build in C++98 mode: template typenames must not be localThiago Macieira2016-03-031-6/+8
| | | | | | | | | | | | | | qgltf.cpp:1990:38: error: template argument for ‘template<class Key, class T> class QHash’ uses local type ‘GltfExporter::exportTechniques(QJsonObject&, const QString&)::ProgramNames’ Change-Id: Ic747cc2ab45e4dc6bb70ffff143844dc7120e571 Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
* | Merge remote-tracking branch 'origin/5.6' into devLiang Qi2016-01-261-7/+6
|\| | | | | | | | | | | | | | | | | Conflicts: src/doc/src/qt3dcollision-module.qdoc src/render/frontend/qcamera.cpp src/render/frontend/qcameralens.cpp Change-Id: I8a0ae250a6b8e065a1ef3c817968ebb7ef23b20d
| * Fix potential crash due to taking iterator from temporary containerSergio Martins2016-01-231-7/+6
| | | | | | | | | | | | | | constBegin() would belong to a different container than constEnd() Change-Id: I5094d6a6ee9c2167bb69274556f568538c77cf6f Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* | Unify license header usageAntti Kokko2016-01-261-18/+10
|/ | | | | | | | Updated license headers to use new GPL-EXCEPT header instead of LGPL3 one (in those files which will be under GPL 3 with exceptions) Change-Id: I930c6234bfe720d38c596bbc3d1f39be75a7328b Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
* qgltf: Add a short description to the helpLaszlo Agocs2016-01-131-0/+12
| | | | | Change-Id: I978127436e197c714f7ad43c86c1c7896b94d9cd Reviewed-by: Andy Nichols <andy.nichols@theqtcompany.com>
* qgltf: Do not output the unused, dummy light blockLaszlo Agocs2016-01-071-10/+0
| | | | | Change-Id: Ie6de66a4150a1ebc8a4a6b555618282b7e756658 Reviewed-by: Andy Nichols <andy.nichols@theqtcompany.com>
* qgltf: Add an option to suppress techniques completelyLaszlo Agocs2016-01-071-7/+17
| | | | | | | | | | Due to the KHR_materials_common block Qt 3D is able to load the generated scenes without the presence of shaders, programs and techniques blocks. Add an option to skip outputting these, in order to reduce the size and speed of parsing. Change-Id: I212e4e66197489c107ee47dcbc33d6f5b6b40156 Reviewed-by: Andy Nichols <andy.nichols@theqtcompany.com>
* qgltf: Fix not including image files in the qrcLaszlo Agocs2016-01-071-6/+6
| | | | | | | | | Once again, the problem surfaces: when not specifying an output directory, image files are not added to the resource list. Change it to go through the external texture list always. Change-Id: Ic3da5d7f8b1da958c6453f18650f2e50c70a0d1f Reviewed-by: Andy Nichols <andy.nichols@theqtcompany.com>
* qgltf: Promote rgb to rgba for common material valuesLaszlo Agocs2016-01-071-0/+20
| | | | | | | | | | The spec uses FLOAT_VEC4 for colors. This means that while in the custom material case we can use vec3 since we provide the type information, the common materials path needs to promote all colors to RGBA. Change-Id: I1ac403807d0d6f0e9dfe14ea704c7f4a325495fa Reviewed-by: Andy Nichols <andy.nichols@theqtcompany.com>
* Use .qgltf extension for qgltf-generated glTF filesLaszlo Agocs2016-01-071-3/+3
| | | | | | | | | | 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>
* qgltf: Output a KHR_materials_common blockLaszlo Agocs2016-01-071-1/+30
| | | | | | | | | | | | | | Unless disabled by a command-line switch. The spec is insufficient to support normal maps, the "normalmap" value is our own extension to the extension for now. Also, the common technique name is always PHONG. The correct material can be chosen based on the presence and type of the value list entries. Task-number: QTBUG-49384 Change-Id: I4f2e5848ad8019c44e9392416501655ab1163d7c Reviewed-by: Andy Nichols <andy.nichols@theqtcompany.com>
* qglTf: Update to use glTF 1.0draft specAndy Nichols2015-11-131-46/+12
| | | | | Change-Id: I137b5b67e89930a055360e3017ce9f0c0ceb6d6b Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
* Rename varyings that clash with three.js' glTFLoaderLaszlo Agocs2015-11-131-24/+24
| | | | | | | Task-number: QTBUG-49343 Change-Id: Ice78fc0a689251ddd27f1b4cfe9b5ba2a4db0f0f Reviewed-by: Miikka Heikkinen <miikka.heikkinen@theqtcompany.com> Reviewed-by: Tomi Korpipää <tomi.korpipaa@theqtcompany.com>
* qgltf: Fix not putting textures into the qrc when no copying occursLaszlo Agocs2015-11-131-1/+1
| | | | | | | | | | | | | Now that the qmake rule uses "." as the default output directory for the generated files, external assets like textures are often not copied as they are in the same place already. However, we still need to list everything in the generated .qrc file. This should fix not having textures in many cases with the simplified prf. Change-Id: I2b593adf9ac9dddf32bf1e411bd9443025727f8f Reviewed-by: Mika Salmela <mika.salmela@theqtcompany.com> Reviewed-by: Sean Harmer <sean.harmer@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>
* qgltf: get rid of degenerate polygonsLaszlo Agocs2015-08-271-1/+2
| | | | | Change-Id: I450e55536e8cc234bcec827fea441a8194b19345 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* Fix MSVC2015/64 compiler warnings in qgltf.Friedemann Kleint2015-08-211-5/+5
| | | | | | | | | | | qgltf.cpp(2125): warning C4267: '=': conversion from 'size_t' to 'uint', possible loss of data qgltf.cpp(2135): warning C4267: '=': conversion from 'size_t' to 'uint', possible loss of data qgltf.cpp(2152): warning C4267: '=': conversion from 'size_t' to 'uint', possible loss of data qgltf.cpp(2170): warning C4267: '=': conversion from 'size_t' to 'uint', possible loss of data qgltf.cpp(2201): warning C4267: '=': conversion from 'size_t' to 'uint', possible loss of data Change-Id: I7d0f9054bd2736698ec6d13f6eff20180c3262cb Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
* qgltf: Generate a non-mipmapped sampler for compressed texturesLaszlo Agocs2015-08-201-3/+9
| | | | | | | | This will cause the loader not to enable automatic mipmap generation which is good because that would fail with GLES. Change-Id: Ie3d0ea473e28bddc9144aa629019d4331b505829 Reviewed-by: Andy Nichols <andy.nichols@theqtcompany.com>
* qgltf: Set the correct internal format for ETC1 texturesLaszlo Agocs2015-08-201-2/+2
| | | | | Change-Id: Ic4615231f93ed53b67ed6091497cfd90e8a20cbc Reviewed-by: Andy Nichols <andy.nichols@theqtcompany.com>
* Rename tools directory backLaszlo Agocs2015-08-181-0/+2509
And remove force_bootstrap that breaks non-cross-compiled builds. In true cross-compiled builds cross_compile (that is set during configure) will trigger force_bootstrap so we don't have to set that manually for tools outside qtbase. Change-Id: Ie3bc6fc105ea7686a3098c6afd631561755aa01b Reviewed-by: Andy Nichols <andy.nichols@theqtcompany.com>