diff options
-rw-r--r-- | examples/qt3d/assimp-cpp/main.cpp | 10 | ||||
-rw-r--r-- | examples/qt3d/basicshapes-cpp/main.cpp | 12 | ||||
-rw-r--r-- | examples/qt3d/bigscene-cpp/main.cpp | 12 | ||||
-rw-r--r-- | examples/qt3d/cpp_example/main.cpp | 18 | ||||
-rw-r--r-- | examples/qt3d/custom-mesh-cpp/main.cpp | 11 | ||||
-rw-r--r-- | examples/qt3d/deferred-renderer-cpp/main.cpp | 5 | ||||
-rw-r--r-- | examples/qt3d/examples-common/qt3dwindow.cpp | 37 | ||||
-rw-r--r-- | examples/qt3d/examples-common/qt3dwindow.h | 8 |
8 files changed, 35 insertions, 78 deletions
diff --git a/examples/qt3d/assimp-cpp/main.cpp b/examples/qt3d/assimp-cpp/main.cpp index 660cef2fd..73b14fe56 100644 --- a/examples/qt3d/assimp-cpp/main.cpp +++ b/examples/qt3d/assimp-cpp/main.cpp @@ -105,6 +105,7 @@ int main(int ac, char **av) { QApplication app(ac, av); Qt3DWindow view; + view.defaultFramegraph()->setClearColor(Qt::black); // Root entity Qt3DCore::QEntity *sceneRoot = new Qt3DCore::QEntity(); @@ -118,18 +119,11 @@ int main(int ac, char **av) basicCamera->setPosition(QVector3D(0.0f, 3.5f, 25.0f)); basicCamera->setNearPlane(0.001f); basicCamera->setFarPlane(10000.0f); + // For camera controls Qt3DInput::QFirstPersonCameraController *camController = new Qt3DInput::QFirstPersonCameraController(sceneRoot); camController->setCamera(basicCamera); - // Forward Renderer FrameGraph - Qt3DRender::QFrameGraph *frameGraphComponent = new Qt3DRender::QFrameGraph(sceneRoot); - Qt3DRender::QForwardRenderer *forwardRenderer = new Qt3DRender::QForwardRenderer(); - forwardRenderer->setCamera(basicCamera); - forwardRenderer->setClearColor(Qt::black); - frameGraphComponent->setActiveFrameGraph(forwardRenderer); - view.setFrameGraph(frameGraphComponent); - // Scene loader Qt3DCore::QEntity *sceneLoaderEntity = new Qt3DCore::QEntity(sceneRoot); Qt3DRender::QSceneLoader *sceneLoader = new Qt3DRender::QSceneLoader(sceneLoaderEntity); diff --git a/examples/qt3d/basicshapes-cpp/main.cpp b/examples/qt3d/basicshapes-cpp/main.cpp index 586647849..90c926ac3 100644 --- a/examples/qt3d/basicshapes-cpp/main.cpp +++ b/examples/qt3d/basicshapes-cpp/main.cpp @@ -74,6 +74,7 @@ int main(int argc, char **argv) { QApplication app(argc, argv); Qt3DWindow *view = new Qt3DWindow(); + view->defaultFramegraph()->setClearColor(QColor(QRgb(0x4d4d4f))); QWidget *container = QWidget::createWindowContainer(view); QSize screenSize = view->screen()->size(); container->setMinimumSize(QSize(200, 100)); @@ -106,17 +107,6 @@ int main(int argc, char **argv) Qt3DInput::QFirstPersonCameraController *camController = new Qt3DInput::QFirstPersonCameraController(rootEntity); camController->setCamera(cameraEntity); - // FrameGraph - Qt3DRender::QFrameGraph *frameGraph = new Qt3DRender::QFrameGraph(); - Qt3DRender::QForwardRenderer *forwardRenderer = new Qt3DRender::QForwardRenderer(); - - forwardRenderer->setCamera(cameraEntity); - forwardRenderer->setClearColor(QColor(QRgb(0x4d4d4f))); - frameGraph->setActiveFrameGraph(forwardRenderer); - - // Setting the FrameGraph - view->setFrameGraph(frameGraph); - // Scenemodifier SceneModifier *modifier = new SceneModifier(rootEntity); diff --git a/examples/qt3d/bigscene-cpp/main.cpp b/examples/qt3d/bigscene-cpp/main.cpp index 46e4acb0b..bf2e5e5e5 100644 --- a/examples/qt3d/bigscene-cpp/main.cpp +++ b/examples/qt3d/bigscene-cpp/main.cpp @@ -63,13 +63,13 @@ using namespace Qt3DRender; int main(int ac, char **av) { QGuiApplication app(ac, av); - Qt3DWindow view; + view.defaultFramegraph()->setClearColor(Qt::black); + QEntity *root = new QEntity(); // Camera QCamera *cameraEntity = view.camera(); - cameraEntity->setObjectName(QStringLiteral("cameraEntity")); cameraEntity->lens()->setPerspectiveProjection(45.0f, 16.0f/9.0f, 0.1f, 1000.0f); cameraEntity->setPosition(QVector3D(0, 250.0f, 50.0f)); cameraEntity->setUpVector(QVector3D(0, 1, 0)); @@ -79,14 +79,6 @@ int main(int ac, char **av) Qt3DInput::QFirstPersonCameraController *camController = new Qt3DInput::QFirstPersonCameraController(root); camController->setCamera(cameraEntity); - // FrameGraph - QFrameGraph *frameGraph = new QFrameGraph(); - QForwardRenderer *forwardRenderer = new QForwardRenderer(); - forwardRenderer->setCamera(cameraEntity); - forwardRenderer->setClearColor(Qt::black); - frameGraph->setActiveFrameGraph(forwardRenderer); - view.setFrameGraph(frameGraph); - const float radius = 100.0f; const int max = 1000; const float det = 1.0f / max; diff --git a/examples/qt3d/cpp_example/main.cpp b/examples/qt3d/cpp_example/main.cpp index 9e7708abf..4cf6d2f80 100644 --- a/examples/qt3d/cpp_example/main.cpp +++ b/examples/qt3d/cpp_example/main.cpp @@ -109,26 +109,8 @@ int main(int ac, char **av) Qt3DInput::QFirstPersonCameraController *camController = new Qt3DInput::QFirstPersonCameraController(rootEntity); camController->setCamera(cameraEntity); - // FrameGraph - Qt3DRender::QFrameGraph *frameGraph = new Qt3DRender::QFrameGraph(); - Qt3DRender::QTechniqueFilter *techniqueFilter = new Qt3DRender::QTechniqueFilter(); - Qt3DRender::QViewport *viewport = new Qt3DRender::QViewport(techniqueFilter); - Qt3DRender::QClearBuffer *clearBuffer = new Qt3DRender::QClearBuffer(viewport); - Qt3DRender::QCameraSelector *cameraSelector = new Qt3DRender::QCameraSelector(clearBuffer); - (void) new Qt3DRender::QRenderPassFilter(cameraSelector); - - // TechiqueFilter and renderPassFilter are not implement yet - viewport->setRect(QRectF(0, 0, 1, 1)); - clearBuffer->setBuffers(Qt3DRender::QClearBuffer::ColorDepthBuffer); - cameraSelector->setCamera(cameraEntity); - frameGraph->setActiveFrameGraph(techniqueFilter); - - // Setting the FrameGraph - view.setFrameGraph(frameGraph); - // Set root object of the scene view.setRootEntity(rootEntity); - // Show window view.show(); return app.exec(); diff --git a/examples/qt3d/custom-mesh-cpp/main.cpp b/examples/qt3d/custom-mesh-cpp/main.cpp index 0b412f857..d20ded6bb 100644 --- a/examples/qt3d/custom-mesh-cpp/main.cpp +++ b/examples/qt3d/custom-mesh-cpp/main.cpp @@ -63,6 +63,7 @@ int main(int argc, char* argv[]) { QGuiApplication app(argc, argv); Qt3DWindow view; + view.defaultFramegraph()->setClearColor(QColor::fromRgbF(0.0, 0.5, 1.0, 1.0)); // Root entity Qt3DCore::QEntity *rootEntity = new Qt3DCore::QEntity(); @@ -79,13 +80,6 @@ int main(int argc, char* argv[]) Qt3DInput::QFirstPersonCameraController *camController = new Qt3DInput::QFirstPersonCameraController(rootEntity); camController->setCamera(cameraEntity); - // FrameGraph - Qt3DRender::QFrameGraph *frameGraph = new Qt3DRender::QFrameGraph(); - Qt3DRender::QForwardRenderer *forwardRenderer = new Qt3DRender::QForwardRenderer(); - forwardRenderer->setClearColor(QColor::fromRgbF(0.0, 0.5, 1.0, 1.0)); - forwardRenderer->setCamera(cameraEntity); - frameGraph->setActiveFrameGraph(forwardRenderer); - // Material Qt3DRender::QMaterial *material = new Qt3DRender::QPerVertexColorMaterial(rootEntity); @@ -239,9 +233,6 @@ int main(int argc, char* argv[]) customMeshEntity->addComponent(transform); customMeshEntity->addComponent(material); - - view.setFrameGraph(frameGraph); - view.setRootEntity(rootEntity); view.show(); diff --git a/examples/qt3d/deferred-renderer-cpp/main.cpp b/examples/qt3d/deferred-renderer-cpp/main.cpp index b910b4920..65100398a 100644 --- a/examples/qt3d/deferred-renderer-cpp/main.cpp +++ b/examples/qt3d/deferred-renderer-cpp/main.cpp @@ -112,7 +112,6 @@ int main(int ac, char **av) camController->setCamera(camera); // FrameGraph - Qt3DRender::QFrameGraph *frameGraph = new Qt3DRender::QFrameGraph(); DeferredRenderer *deferredRenderer = new DeferredRenderer(); deferredRenderer->setClearColor(Qt::black); deferredRenderer->setRect(QRectF(0.0f, 0.0f, 1.0f, 1.0f)); @@ -122,9 +121,7 @@ int main(int ac, char **av) deferredRenderer->setSceneCamera(camera); deferredRenderer->setGBufferLayers(sceneLayer->names()); deferredRenderer->setScreenQuadLayers(quadLayer->names()); - - frameGraph->setActiveFrameGraph(deferredRenderer); - view.setFrameGraph(frameGraph); + view.setActiveFrameGraph(deferredRenderer); // Scene Content Qt3DCore::QEntity *sphereOne = new Qt3DCore::QEntity(rootEntity); diff --git a/examples/qt3d/examples-common/qt3dwindow.cpp b/examples/qt3d/examples-common/qt3dwindow.cpp index 56533aeae..a7728771e 100644 --- a/examples/qt3d/examples-common/qt3dwindow.cpp +++ b/examples/qt3d/examples-common/qt3dwindow.cpp @@ -56,7 +56,8 @@ Qt3DWindow::Qt3DWindow(QScreen *screen) , m_renderAspect(new Qt3DRender::QRenderAspect) , m_inputAspect(new Qt3DInput::QInputAspect) , m_logicAspect(new Qt3DLogic::QLogicAspect) - , m_frameGraph(nullptr) + , m_frameGraph(new Qt3DRender::QFrameGraph) + , m_forwardRenderer(new Qt3DRender::QForwardRenderer) , m_defaultCamera(new Qt3DRender::QCamera) , m_root(new Qt3DCore::QEntity) , m_userRoot(nullptr) @@ -80,6 +81,10 @@ Qt3DWindow::Qt3DWindow(QScreen *screen) m_aspectEngine->registerAspect(m_renderAspect); m_aspectEngine->registerAspect(m_inputAspect); m_aspectEngine->registerAspect(m_logicAspect); + + m_forwardRenderer->setCamera(m_defaultCamera); + m_forwardRenderer->setSurface(this); + m_frameGraph->setActiveFrameGraph(m_forwardRenderer); } Qt3DWindow::Qt3DWindow(QWindow *parent) @@ -88,7 +93,7 @@ Qt3DWindow::Qt3DWindow(QWindow *parent) , m_renderAspect(new Qt3DRender::QRenderAspect) , m_inputAspect(new Qt3DInput::QInputAspect) , m_logicAspect(new Qt3DLogic::QLogicAspect) - , m_frameGraph(nullptr) + , m_frameGraph(new Qt3DRender::QFrameGraph) , m_defaultCamera(new Qt3DRender::QCamera) , m_root(new Qt3DCore::QEntity) , m_userRoot(nullptr) @@ -111,7 +116,12 @@ Qt3DWindow::Qt3DWindow(QWindow *parent) m_aspectEngine->registerAspect(m_renderAspect); m_aspectEngine->registerAspect(m_inputAspect); - m_aspectEngine->registerAspect(m_logicAspect);} + m_aspectEngine->registerAspect(m_logicAspect); + + m_forwardRenderer->setCamera(m_defaultCamera); + m_forwardRenderer->setSurface(this); + m_frameGraph->setActiveFrameGraph(m_forwardRenderer); +} Qt3DWindow::~Qt3DWindow() { @@ -135,14 +145,19 @@ void Qt3DWindow::setRootEntity(Qt3DCore::QEntity *root) m_userRoot = root; } -void Qt3DWindow::setFrameGraph(Qt3DRender::QFrameGraph *frameGraph) +void Qt3DWindow::setActiveFrameGraph(Qt3DRender::QFrameGraphNode *activeFrameGraph) { - m_frameGraph = frameGraph; + m_frameGraph->setActiveFrameGraph(activeFrameGraph); } -Qt3DRender::QFrameGraph *Qt3DWindow::frameGraph() const +Qt3DRender::QFrameGraphNode *Qt3DWindow::activeFrameGraph() const { - return m_frameGraph; + return m_frameGraph->activeFrameGraph(); +} + +Qt3DRender::QForwardRenderer *Qt3DWindow::defaultFramegraph() const +{ + return m_forwardRenderer; } Qt3DRender::QCamera *Qt3DWindow::camera() const @@ -156,14 +171,6 @@ void Qt3DWindow::showEvent(QShowEvent *e) if (m_userRoot != nullptr) m_userRoot->setParent(m_root); - if (m_frameGraph == nullptr) { - m_frameGraph = new Qt3DRender::QFrameGraph; - Qt3DRender::QForwardRenderer *forwardRenderer = new Qt3DRender::QForwardRenderer; - forwardRenderer->setCamera(m_defaultCamera); - forwardRenderer->setSurface(this); - m_frameGraph->setActiveFrameGraph(forwardRenderer); - } - // TODO: Get rid of this QVariantMap data; data.insert(QStringLiteral("surface"), QVariant::fromValue(static_cast<QSurface *>(this))); diff --git a/examples/qt3d/examples-common/qt3dwindow.h b/examples/qt3d/examples-common/qt3dwindow.h index 8b2d79a18..1f3f78b7d 100644 --- a/examples/qt3d/examples-common/qt3dwindow.h +++ b/examples/qt3d/examples-common/qt3dwindow.h @@ -50,6 +50,8 @@ class QEntity; namespace Qt3DRender { class QCamera; class QFrameGraph; +class QFrameGraphNode; +class QForwardRenderer; class QRenderAspect; } @@ -74,8 +76,9 @@ public: void setRootEntity(Qt3DCore::QEntity *root); - void setFrameGraph(Qt3DRender::QFrameGraph *frameGraph); - Qt3DRender::QFrameGraph *frameGraph() const; + void setActiveFrameGraph(Qt3DRender::QFrameGraphNode *activeFrameGraph); + Qt3DRender::QFrameGraphNode *activeFrameGraph() const; + Qt3DRender::QForwardRenderer *defaultFramegraph() const; Qt3DRender::QCamera *camera() const; @@ -97,6 +100,7 @@ private: // Renderer configuration Qt3DRender::QFrameGraph *m_frameGraph; + Qt3DRender::QForwardRenderer *m_forwardRenderer; Qt3DRender::QCamera *m_defaultCamera; // Input configuration |