summaryrefslogtreecommitdiffstats
path: root/src/core/transforms
Commit message (Collapse)AuthorAgeFilesLines
* Doc: Fully qualify \property, \qmlproperty, \typedef, \enumLuca Di Sera2024-02-132-2/+2
| | | | | | | | | | | Upcoming changes to QDoc require API entities to be fully qualified; previously, QDoc maintained a list of 'open namespaces' that were part of matching the documented entity with its declaration, but that concept does not work for parallelized parsing where the order of processing can be arbitrary. Change-Id: I1662fb4692b5c91a2d9e33eb17708544d9cd1ebb Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
* Remove qmake build filesMike Krus2023-03-171-61/+0
| | | | | | | | Except in examples Pick-to: 6.5 Change-Id: I31b06ddfc79f14dde3369518a76d57606daf939f Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* 3DCore: rip away the configure option and static choice of SIMDThiago Macieira2023-01-1911-162/+59
| | | | | | | | | | | | Instead, simply use whatever is available from the compiler. This also does away with the separation between Matrix4x4_SSE and Matrix4x4_AVX2. The two classes store the data the same way and are source-compatible; they just operate differently. This also allows for an AVX2-enabled Qt3DRenderer to link to and run with a non-AVX Qt3DCore. Change-Id: I76216ced393445a4ae2dfffd172a512266b2414d Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* Port to new Q_UNREACHABLE_RETURN()Marc Mutz2022-10-203-10/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is a semantic patch using ClangTidyTransformator to convert sequences of Q_UNREACHABLE() + return into Q_UNREACHABLE_RETURN(), newly added to qtbase. const std::string unr = "unr", val = "val", ret = "ret"; auto makeUnreachableReturn = cat("Q_UNREACHABLE_RETURN(", ifBound(val, cat(node(val)), cat("")), ")"); auto ignoringSwitchCases = [](auto stmt) { return anyOf(stmt, switchCase(subStmt(stmt))); }; makeRule(stmt(ignoringSwitchCases(stmt(isExpandedFromMacro("Q_UNREACHABLE")).bind(unr)), nextStmt(returnStmt(optionally(hasReturnValue(expr().bind(val)))).bind(ret))), {changeTo(node(unr), cat(makeUnreachableReturn, ";")), // TODO: why is the ; lost w/o this? changeTo(node(ret), cat(""))}, cat("use ", makeUnreachableReturn)); a.k.a qt-use-unreachable-return. subStmt() and nextStmt() are non-standard matchers. Change-Id: I3855b2dc8523db1ea860f72ad9818738162495c6 Reviewed-by: Marc Mutz <marc.mutz@qt.io> Reviewed-by: Ivan Solovev <ivan.solovev@qt.io> Reviewed-by: Mike Krus <mike.krus@kdab.com>
* Qt3DCore: includemocsMike Krus2022-06-225-0/+10
| | | | | | | Task-number: QTBUG-103286 Pick-to: 6.3 6.2 5.15 Change-Id: Ifca1713c5e2f3582788a8f0537621e166bda4492 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* Use SPDX license identifiersLucie Gérard2022-06-2231-1178/+62
| | | | | | | | | | | Replace the current license disclaimer in files by a SPDX-License-Identifier. License files are organized under LICENSES directory. Pick-to: 6.4 Task-number: QTBUG-67283 Change-Id: I8105424281eed871037fa6c463871ca8829876b5 Reviewed-by: Jörg Bornemann <joerg.bornemann@qt.io>
* Make sure all private headers include at least one otherThiago Macieira2022-03-081-2/+2
| | | | | | | | | | See script in qtbase/util/includeprivate for the rules. Since these files are being touched anyway, I also ran the updatecopyright.pl script too. Change-Id: Ib056b47dde3341ef9a52ffff13ef677e471674b6 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* Transform Qt3D.Core to declarative type registrationUlf Hermann2021-04-061-1/+1
| | | | | | | | | | | | | | | | We already did this for the value types. As we cannot mix declarative and procedural registration, we need to do it for the object types, too. For declarative registration, the qmltypes files are generated at compile time. For procedural registration, you need to manually invoke qmlplugindump to generate them. Doing both leads to two conflicting qmltypes files for the same module. Fixes: QTBUG-92259 Pick-to: 6.1 Change-Id: Ic3d9c63410f84e04cd368ddaee3a6ff2d9a3c997 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> Reviewed-by: Mike Krus <mike.krus@kdab.com>
* Restore use of QVector in private APIMike Krus2021-01-051-2/+2
| | | | | | | | Facilitates building against Qt 5.15. Will migrate to std::vector over time. Change-Id: I5db14c9ea95b38e4b2d596d7397fef76f6baf118 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* Fix compilation error with -no-avx2Laurent Rineau2020-08-312-4/+4
| | | | | | Change-Id: I1aa49328226d5e3f1da4bd86704c7fad44da6ad9 Pick-to: 5.15 5.14 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* Use QList instead of QVector in implementation and docsJarek Kobus2020-07-093-7/+7
| | | | | | | | | Fix some const correctness. Use list-initialization. Task-number: QTBUG-84469 Change-Id: I9c56742581f48f89a3b02e4121fae414117c7a25 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* Use QList instead of QVectorJarek Kobus2020-07-072-2/+2
| | | | | | Task-number: QTBUG-84469 Change-Id: Ic726ce85e01190dbc64426388fd454c54ae3c3e3 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* Add API compatible with QMatrix4x4Mike Krus2020-06-012-0/+8
| | | | | | | | The SSE / AVX Matrix have API which is not compatible with QMatrix4x4. Added operator()(int, int) and use that instead. Change-Id: I41328805da3b1003273e526f4eedbd035d18fb97 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* Fix build for Qt6Mike Krus2020-05-063-3/+3
| | | | | | | | | | | | | - updated dependencies, excluding qtgamepad for now - fixed issues with Q_PROPERTY not supporting forward declarations - fixed for changes in QtQuick private API - fixed for changes in QtOpenGLVersionFunctions API - fixed for removal of QT_OPENGL_ES* macros - fixed for changes in QtConcurrent API - fixed RHI based build Change-Id: I42ccd2f101b7f0a78e2860c6d551722bf6710a11 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* Merge remote-tracking branch 'origin/5.15' into devMike Krus2020-04-271-2/+2
|\ | | | | | | Change-Id: Id669d5c1aab29965eac0dabd1cb497e908dac23e
| * Fix compilation on Windows with -qt3d-simd avx2Paul Lemire2020-04-201-2/+2
| | | | | | | | | | | | | | | | | | | | | | Q_3DCORE_PRIVATE_EXPORT for operator* were removed by commit: fa6799f63f3211300705b814b97716ca689d4bfa for Vector3D_SSE and Matrix4x4_SSE. Unfortunately they weren't removed for Matrix4x4_AVX2 which lead to different linkage compile errors. Change-Id: I854fb0cb4409aea1d130e935091533d4e72d6d6e Reviewed-by: Mike Krus <mike.krus@kdab.com>
* | Track dirty state on front end nodesMike Krus2020-04-072-0/+11
| | | | | | | | | | | | | | Nothing clears the state yet, will be up to the core aspect to do that. Change-Id: Ia3a5297a4b837b1d67545bd29ddce56666c520f3 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* | Remove deprecated classes and functionsPaul Lemire2020-02-1114-122/+14
|/ | | | | | | Mostly old messaging API Change-Id: I17eb2206b2ede56d2f7d36375d5e711d6149019f Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* Remove unneeded export of inline functionsFriedemann Kleint2020-02-072-5/+5
| | | | | | | | | Fix MinGW-warings src/core/transforms/matrix4x4_sse_p.h:485:50: warning: inline function 'Vector3D Qt3DCore::operator*(const Qt3DCore::Matrix4x4_SSE&, const Vector3D&)' declared as dllimport: attribute ignored [-Wattributes] Q_3DCORE_PRIVATE_EXPORT Q_ALWAYS_INLINE Vector3D operator*(const Matrix4x4_SSE &matrix, const Vector3D &vector) Change-Id: Ib8b39c613ce05b6dc3848c1251a88eea53903212 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* Make the OpenGL renderer a pluginPaul Lemire2020-02-052-0/+2
| | | | | | | | By default the QRenderAspect will try to load this plugin Change-Id: Ie55e207fb8e6d0b64f717bbb99699eb669eaa3f2 Task-number: QTBUG-61151 Reviewed-by: Mike Krus <mike.krus@kdab.com>
* Fix usages of text stream operatorsAlexandru Croitor2019-12-062-10/+10
| | | | | | Change-Id: I8f3fe9475749f10f33c8eb750befa8845ccc37d6 (cherry picked from commit 58db7d01e0d424fdf46baa70e2e41b8009429c78) Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Fix skeleton loadingMike Krus2019-10-252-16/+23
| | | | | | | | Set the nodes created on the backend properly (assigning parent) so that the backend nodes get created before the second round of updates. Change-Id: Ia8ac9aacfc6bdb8938d07dbf714d471b5ddc4999 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* Revert removal of more sceneChanged methodsMike Krus2019-10-242-0/+9
| | | | | | | Removal breaks BC Change-Id: I8c324253c3a39c8fd74bf4cc14462f76cd2e4f5e Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* Restore sceneChangeEvent overload that were removedPaul Lemire2019-10-222-0/+2
| | | | | | | | Not BIC compatible so they must stay until Qt6. Added TODO above them to make it easier to track for Qt6. Change-Id: Ia1adba25be5d55d3fa836727877c7c1f7346b668 Reviewed-by: Mike Krus <mike.krus@kdab.com>
* Remove remaining messaging code in QSkeletonLoaderMike Krus2019-10-221-12/+0
| | | | | | | And matching unit tests Change-Id: Iff0b13b2ad9ff07d08c767f4b20de2a1685a5570 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* Remove old code from animation classes & update testsMike Krus2019-10-212-12/+0
| | | | | Change-Id: Ic91a4f168172d6f34d858488e6fc170e8ed875f9 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* Fix Coverity warningsMike Krus2019-10-212-0/+3
| | | | | Change-Id: I00c875b48d838170fddf0b92f0ac5592828c6f0f Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* Clean QJoint message handlingMike Krus2019-10-111-3/+2
| | | | | Change-Id: Ib09024017a2d213e50b3acc89d7c411728eb1869 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* Update LoadSkeletonJob to use direct syncMike Krus2019-10-081-0/+1
| | | | | Change-Id: I5622f9784628b7217f6e37c700ac314b7264f439 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* Update animation evaluation jobs to use direct syncMike Krus2019-10-082-0/+11
| | | | | | | | | | | | | | Animation data is now stored in the job which propagates them to the frontend at the end of the frame. Animated properties are passed using Qt's property system. Animated poses are passed via the frontend skeleton node. Syncing on new frame will take care of propagating both for use in other aspects. Callbacks are called by the job directly or stored and invoked on the main thread depending on the callback setting. Change-Id: I78675715799300bc1b27f854f1a445c00a2ac734 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* Fix missing exportsMike Krus2019-10-026-6/+6
| | | | | Change-Id: Ibf24099223bd35948f50a492e0d754f6f680a3db Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* Clean up includesMike Krus2019-10-011-3/+0
| | | | | | | | | Remove include statements for classes that are no longer used. Makes it easier to find remaining use cases that need addressed before complete removal in Qt 6. Change-Id: I60529ba1929ad64b162d3847d5df47cde2a60dad Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* QTransform: move setWorldMatrix to private classPaul Lemire2019-09-193-7/+9
| | | | | | Change-Id: Ifc8b172414e01cebcaf42c30773376c43aaae9a9 Task-number: QTBUG-77859 Reviewed-by: Mike Krus <mike.krus@kdab.com>
* Update QJoint to use direct syncMike Krus2019-09-181-10/+4
| | | | | Change-Id: I2b86f182a61c18cb6608f2f89938ab342160c924 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* Merge remote-tracking branch 'origin/5.13' into 5.14Qt Forward Merge Bot2019-09-112-16/+12
|\ | | | | | | Change-Id: I4e73060c1941773efcc568f010f5b073ebb10d4a
| * Merge remote-tracking branch 'origin/5.12' into 5.13Qt Forward Merge Bot2019-08-242-16/+12
| |\ | | | | | | | | | Change-Id: I7d7274866129a3c8a3ed3788680a46368120d20d
| | * Matrix_SSE/Matrix_AVX2: fix mapVectorPaul Lemire2019-08-202-16/+12
| | | | | | | | | | | | | | | | | | Change-Id: I4584d2c879a72eccbaf273d0e84b3b6f6bb55295 Task-number: QTBUG-77675 Reviewed-by: Mike Krus <mike.krus@kdab.com>
* | | QTransform: add worldMatrix propertyPaul Lemire2019-08-133-1/+72
|/ / | | | | | | | | | | | | | | | | | | | | Will make it more convenient to retrieve the world transform of a given QEntity as well as monitor it for changes without having to traverse the parent hierarchy of QEntity/QTransform [ChangeLog] Add worldMatrix property on QTransform Change-Id: Ie9ffb70c03b365850ed08693df2746701ca9a1fb Reviewed-by: Mike Krus <mike.krus@kdab.com>
* / Switch export macros to standard formKai Koehne2019-04-0210-22/+22
|/ | | | | | | | | | | | Qt expects the export macros to have Q_ prefixes, otherwise the symbol versioning script won't find them and mark them. Also remove non-exising QT3DLOGIC_PRIVATE_EXPORT macro from src/doc/qt3d.qdocconf Task-number: QTBUG-74752 Change-Id: I71b9e85ff09c002fb283824aa51a5a8f50e937f4 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* Fix unfinished commentThiago Macieira2018-12-121-0/+1
| | | | | | | | Found by ICC. Change-Id: I4ac1156702324f0fb814fffd156f815f33110f71 Reviewed-by: Paul Wicking <paul.wicking@qt.io> Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@qt.io>
* Doc: Add doc to undocumented methodsNico Vertriest2018-11-012-1/+17
| | | | | | | | | | | | | - qcomponent.cpp - qbackendnode.cpp - qjoint.cpp - qskeletonloader.cpp - qframeaction.cpp - qscene2d.h - qrenderaspect.cpp Change-Id: I25881dee19d2d01f948bfaf4a156a97f6caaea73 Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
* Doc: Add missing dots (qt3d)Paul Wicking2018-06-196-12/+12
| | | | | | Task-number: QTBUG-68933 Change-Id: I4226b8b9d70548b6921948c5ea47520f40f5df98 Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
* Fix SIMD related warningsPaul Lemire2018-02-281-2/+4
| | | | | Change-Id: Ia7d08551de0b10e3e859da5301ea8e2be501c722 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* simd: declare AVX2 friends only if __AVX2__ definedPaul Lemire2018-02-283-13/+20
| | | | | Change-Id: I8fd88461874367bcaa9f4b27a9b4fc660cd2a030 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* Doc: Fix documentation warnings for Qt 3D CoreTopi Reinio2018-02-161-1/+1
| | | | | | | | | | | | This change fixes multiple QDoc warnings for Qt 3D Core that are related to how Clang parses the source code and the \fn QDoc commands. We still have a number of 'No documentation for ...' warnings left - those are not addressed in this change. Change-Id: Ia6394f453d7bd959bc4d4cc9347ac0039b80f661 Reviewed-by: Martin Smith <martin.smith@qt.io>
* Merge remote-tracking branch 'origin/5.10' into 5.11Sean Harmer2018-02-153-0/+36
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/animation/doc/src/qt3danimation-module.qdoc src/render/backend/abstractrenderer_p.h src/render/backend/buffervisitor_p.h src/render/backend/renderer.cpp src/render/backend/renderer_p.h src/render/backend/triangleboundingvolume_p.h src/render/backend/trianglesextractor_p.h src/render/frontend/sphere_p.h src/render/jobs/calcboundingvolumejob.cpp src/render/jobs/job_common_p.h src/render/jobs/pickboundingvolumejob.cpp src/render/jobs/pickboundingvolumejob_p.h src/render/jobs/pickboundingvolumeutils.cpp src/render/jobs/renderviewjobutils_p.h tests/auto/render/boundingsphere/tst_boundingsphere.cpp tests/auto/render/commons/testrenderer.h tests/auto/render/raycasting/tst_raycasting.cpp tests/auto/render/render.pro tests/auto/render/renderer/tst_renderer.cpp Change-Id: I76633bc5a5a065e5f9ea62cc16563377e5c693a3
| * Render: Use SIMD Vectors and Matrices in the backendPaul Lemire2018-02-023-0/+36
| | | | | | | | | | Change-Id: I19b3b2f8fcb06eb2bc600ebe370465dd15a8eabc Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* | Merge branch '5.10' into devSean Harmer2018-01-263-4/+14
|\| | | | | | | Change-Id: I4728b29c349a16867951a781c9417054c798e04a
| * SIMD: Only include SSE classes if options activatedPaul Lemire2018-01-253-4/+14
| | | | | | | | | | | | | | | | | | Relying on the SSE2 or AVX2 defines results in some SSE/AVX classes being included even though the options were disabled, resulting in compile failures. Change-Id: Ie1e3ce2f093eeb3f749ef215835fa0846fbb5019 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* | QTransform: add fromAxes and rotateFromAxes helperPaul Lemire2018-01-252-0/+23
| | | | | | | | | | | | | | | | | | | | Make it a lot easier to create a QQuaternion or a Rotation matrix for 3 axes. This will greatly simplify implementing custom camera nodes from Transform and CameraLens. Change-Id: Ifed9e3c7442d451ffa4346223afecc0eafff0ed5 Reviewed-by: Sean Harmer <sean.harmer@kdab.com> Reviewed-by: Mike Krus <mike.krus@kdab.com>