summaryrefslogtreecommitdiffstats
path: root/tests/manual
diff options
context:
space:
mode:
authorPaul Lemire <paul.lemire@kdab.com>2020-04-09 12:52:48 +0200
committerPaul Lemire <paul.lemire@kdab.com>2020-04-14 08:21:51 +0200
commitcd1f0d0ac6a82ed9d4621acbb84127c7d0a2a855 (patch)
tree754212cf345f206b0a4889fdb51ba2f7f3b1de7c /tests/manual
parent648c8249fe091e9898cd03ee687b389f0e045842 (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/manual')
-rw-r--r--tests/manual/bigscene-cpp/main.cpp43
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();