diff options
author | Paul Lemire <paul.lemire@kdab.com> | 2020-04-09 12:52:48 +0200 |
---|---|---|
committer | Paul Lemire <paul.lemire@kdab.com> | 2020-04-14 08:21:51 +0200 |
commit | cd1f0d0ac6a82ed9d4621acbb84127c7d0a2a855 (patch) | |
tree | 754212cf345f206b0a4889fdb51ba2f7f3b1de7c /tests | |
parent | 648c8249fe091e9898cd03ee687b389f0e045842 (diff) |
Make bigscene-cpp multiviewport
It is now testing with more than a single Framegraph branch which
should allow to check how well it scales horizontally, given
FG branch are processed in parallel.
Increasing the number of entities only allows to check how well it
scales vertically.
Change-Id: Ic039a0d198cb7ae9bbe7f2d24be833a04a60d74a
Reviewed-by: Mike Krus <mike.krus@kdab.com>
Diffstat (limited to 'tests')
-rw-r--r-- | tests/manual/bigscene-cpp/main.cpp | 43 |
1 files changed, 42 insertions, 1 deletions
diff --git a/tests/manual/bigscene-cpp/main.cpp b/tests/manual/bigscene-cpp/main.cpp index ef296e04d..57e853c47 100644 --- a/tests/manual/bigscene-cpp/main.cpp +++ b/tests/manual/bigscene-cpp/main.cpp @@ -69,6 +69,10 @@ #include <qmath.h> #include <Qt3DExtras/qt3dwindow.h> #include <Qt3DExtras/qfirstpersoncameracontroller.h> +#include <Qt3DRender/QRenderSurfaceSelector> +#include <Qt3DRender/QCameraSelector> +#include <Qt3DRender/QViewport> +#include <Qt3DRender/QNoDraw> using namespace Qt3DCore; using namespace Qt3DRender; @@ -77,7 +81,44 @@ int main(int ac, char **av) { QGuiApplication app(ac, av); Qt3DExtras::Qt3DWindow view; - view.defaultFrameGraph()->setClearColor(Qt::black); + + // FrameGraph + { + QRenderSurfaceSelector *surfaceSelector = new QRenderSurfaceSelector(); + QCameraSelector *cameraSelector = new Qt3DRender::QCameraSelector(surfaceSelector); + cameraSelector->setCamera(view.camera()); + QClearBuffers *clearBuffers = new Qt3DRender::QClearBuffers(cameraSelector); + clearBuffers->setClearColor(QColor(Qt::gray)); + clearBuffers->setBuffers(QClearBuffers::ColorDepthBuffer); + new QNoDraw(clearBuffers); + + const QRectF viewports[] = { + {0.0f, 0.0f, 0.25f, 0.25f}, + {0.25f, 0.0f, 0.25f, 0.25f}, + {0.5f, 0.0f, 0.25f, 0.25f}, + {0.75f, 0.0f, 0.25f, 0.25f}, + {0.0f, 0.25f, 0.25f, 0.25f}, + {0.25f, 0.25f, 0.25f, 0.25f}, + {0.5f, 0.25f, 0.25f, 0.25f}, + {0.75f, 0.25f, 0.25f, 0.25f}, + {0.0f, 0.5f, 0.25f, 0.25f}, + {0.25f, 0.5f, 0.25f, 0.25f}, + {0.5f, 0.5f, 0.25f, 0.25f}, + {0.75f, 0.5f, 0.25f, 0.25f}, + {0.0f, 0.75f, 0.25f, 0.25f}, + {0.25f, 0.75f, 0.25f, 0.25f}, + {0.5f, 0.75f, 0.25f, 0.25f}, + {0.75f, 0.75f, 0.25f, 0.25f}, + }; + + for (const QRectF &vp : viewports) { + QViewport *viewport = new Qt3DRender::QViewport(cameraSelector); + viewport->setNormalizedRect(vp); + } + + view.setActiveFrameGraph(surfaceSelector); + } + QEntity *root = new QEntity(); |