Commit Graph

17 Commits

Author SHA1 Message Date
Paul Lemire 5bdfb0c7bb Fix compilation of Manual Tests
- Following deprecation of context-less lambda connects
- Also ran clang-format on modified files

Pick-to: 6.7
Change-Id: Ib867ddae709c685591497bcaf349ed4b3c1a222e
Reviewed-by: Mike Krus <mike.krus@kdab.com>
2024-06-11 16:29:51 +02:00
Lucie Gérard 28bba0ad93 Correct license for test files
According to QUIP-18 [1], all test files should be
LicenseRef-Qt-Commercial OR GPL-3.0-only

[1]: https://contribute.qt-project.org/quips/18

Pick-to: 6.7
Task-number: QTBUG-121787
Change-Id: I966d4033a73aacabb39f582270f2f1c18e2bcecd
Reviewed-by: Kai Köhne <kai.koehne@qt.io>
2024-04-23 06:28:57 +00:00
Mike Krus c9bd3ad794 Remove qmake build files
Except in examples

Pick-to: 6.5
Change-Id: I31b06ddfc79f14dde3369518a76d57606daf939f
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
2023-03-17 17:47:51 +00:00
Lucie Gérard 8f339ea3d0 Change the license of all CMakeLists.txt and *.cmake files to BSD
Task-number: QTBUG-105718
Change-Id: I97fa27f60a8546ea3d73cc7daf1b728c615a1ab0
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Jörg Bornemann <joerg.bornemann@qt.io>
2022-08-24 01:53:10 +02:00
Alexandru Croitor 4ddbab6f63 CMake: Don't use PUBLIC_LIBRARIES for tests and test helpers
Change-Id: I393161c3adef90f776572c41d03305d2aa3979f8
Reviewed-by: Alexey Edelev <alexey.edelev@qt.io>
2022-07-27 13:48:03 +02:00
Lucie Gérard 0802d82e08 Add license headers to cmake files
CMakeLists.txt and .cmake files of significant size
(more than 2 lines according to our check in tst_license.pl)
now have the copyright and license header.

Existing copyright statements remain intact

Task-number: QTBUG-88621
Change-Id: I141f5077ae0c11e1058de64d573ca33e2a308ccd
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Jörg Bornemann <joerg.bornemann@qt.io>
2022-07-08 13:42:44 +02:00
Lucie Gérard 2f1bc82b35 Use SPDX license identifiers
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>
2022-06-22 10:47:10 +02:00
Mike Krus bcad723d9c Use internal CMake API
Task-number: QTBUG-86815
Change-Id: I7a8755571c8977be1f16b2287e5a8055e9016ee5
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2020-10-07 16:00:04 +01:00
Mike Krus 174cd487b4 Make sample meshes geometry renderers again
Introduce new geometry view class for each.

Change-Id: I8e9a8f3a078d4cc63f9656ae8142e39f05d755c7
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
2020-07-30 13:51:37 +01:00
Paul Lemire 136c016cbe Refactor Scene3D to work with both RHI and GL Qt3D renderers
- Depending on whether we are using RHI or GL we need to either trigger
  the rendering after the beforeRendering or beforeRenderPassRecording
  have been fired

  -> beforeRendering
     The RHI command buffer is set up but nothing has been
     recorded yet. This is what we want for the RHI backend
     but we will need to make sure we don't call begin/endFrame
     nor use swap chains other than the one QtQuick is using.
     This means RenderSurfaceSelector won't be possible.

  -> beforeRenderPassRecording
     The RHI command for buffer uploads have been uploaded but the
     actual RenderPass draw calls have yet to be made. The screen
     has been cleared already, so this is the best place for the
     GL backend which expects the screen to have been cleared.

- The GL backend can use a QOpenGLFrameBufferObject but that is not
  possible with the RHI backend.
- The RHI backend uses a custom QRhiRenderTarget that takes care of
  blitting its color attachment into a QRhiTexture which is then
  bound to a QSGTexture

The overall Scene3DItem/Scene3DRender architecture remains the same:
- processChange
- Render Qt3D content into Texture
- Set texture on a custom QSGNode quad

Change-Id: Id6c317342d0a227d5295cbfefefc3ed12da160d7
Reviewed-by: Mike Krus <mike.krus@kdab.com>
2020-07-29 08:03:55 +02:00
Paul Lemire 56d828078c RenderQueue: switch to std::vector
Change-Id: I49ab3985ee01e40950bcd981dc77139a28f8db6a
Reviewed-by: Mike Krus <mike.krus@kdab.com>
2020-07-03 23:14:18 +02:00
Paul Lemire 41be0c3e04 Fix manual-renderloop test
Set the QRenderAspect to the manual SubmissionType to avoid the application
rendering atuomatically and eventually deadlocking

Change-Id: Idd38948af5c2ebd792b61c5ce5177138469295a0
Reviewed-by: Mike Krus <mike.krus@kdab.com>
2020-06-25 08:20:14 +02:00
Mike Krus 2b749055c7 Remove the OpenGL Render Thread
We're trading a bit of performance at submission (since we could start
preparing the next frame while submitting the current one) for convenience
and ease of maintenance.

Besides, this allows to remove a thread and in cases Qt3D was used with
Scene3D, which is likely the majority of cases, the RenderThread was not
used anyway.

To control whether the QRenderAspect should submit on its own or not,
a new Submission type enum with values Automatic/Manual was added.
This allows the QRenderAspect to automatically perform command submission
when Qt3D is used on its own. For other cases when Qt3D is integrated
into a 3rd party engine or with Scene3D, the Manual mode is used
to let the QRenderAspect render only when it is told to do so.

Change-Id: Idc270b5a07bcb9ea9e61674a69c6b8cf6ccd8182
Reviewed-by: Mike Krus <mike.krus@kdab.com>
2020-06-19 20:20:50 +01:00
Mike Krus 22dd309499 Add support for building with CMake
Change-Id: If6c887c6356a160a5f3fb906d38a341fff0c7b29
Reviewed-by: Mike Krus <mike.krus@kdab.com>
2020-05-22 08:53:50 +01:00
Mike Krus 764924da8a Fix build for Qt6
- 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>
2020-05-06 15:29:54 +02:00
Mike Krus 5bf4f93fcb Make default geometries views
In Extras, make QTorusMesh and others a QGeometryView rather than
a QGeometryRenderer. Requires changes to scene graphs here and there
but going forward there simple shapes could be used as proxies for
picking or collision detection, etc.

Change-Id: Id488e064080dfd303e448aba11e6b242236b81d4
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
2020-02-27 12:10:08 +00:00
Paul Lemire 8c4520c93a Add manual test to check manual render loop
Shows that update are done before rendering takes place

Change-Id: Ia3f5bcb497c023dad805609dcb1ffe9ce7947c06
Task-number: QTBUG-79375
Reviewed-by: Mike Krus <mike.krus@kdab.com>
2019-10-25 11:54:45 +02:00