From 7fa8b1523a0791a159c594687c89af7ae621752a Mon Sep 17 00:00:00 2001 From: Kevin Ottens Date: Wed, 4 May 2016 12:23:32 +0200 Subject: Get rid of QLayer::names Don't reinvent a variable naming system (string based global variables even) and instead use pointer to QLayer instance everywhere, even with QLayerFilter. The wave and deferred-renderer-cpp examples have been ported to the new API. Change-Id: I82a858770954a8743a5c3d2ce0c463e62844871f Task-number: QTBUG-51440 Reviewed-by: Sean Harmer --- .../deferred-renderer-cpp/deferredrenderer.cpp | 8 ++-- .../qt3d/deferred-renderer-cpp/deferredrenderer.h | 4 +- examples/qt3d/deferred-renderer-cpp/main.cpp | 7 +--- examples/qt3d/wave/Background.qml | 43 +++++++++++----------- examples/qt3d/wave/Wave.qml | 6 +-- examples/qt3d/wave/WaveForwardRenderer.qml | 8 +++- examples/qt3d/wave/main.qml | 2 + 7 files changed, 38 insertions(+), 40 deletions(-) (limited to 'examples') diff --git a/examples/qt3d/deferred-renderer-cpp/deferredrenderer.cpp b/examples/qt3d/deferred-renderer-cpp/deferredrenderer.cpp index 2bfac45ec..391240108 100644 --- a/examples/qt3d/deferred-renderer-cpp/deferredrenderer.cpp +++ b/examples/qt3d/deferred-renderer-cpp/deferredrenderer.cpp @@ -89,12 +89,12 @@ void DeferredRenderer::setFinalPassCriteria(QList crit c->setParent(m_finalPassFilter); } -void DeferredRenderer::setGBufferLayers(const QStringList &layerNames) +void DeferredRenderer::setGBufferLayer(Qt3DRender::QLayer *layer) { - m_sceneFilter->setLayers(layerNames); + m_sceneFilter->addLayer(layer); } -void DeferredRenderer::setScreenQuadLayers(const QStringList &layerNames) +void DeferredRenderer::setScreenQuadLayer(Qt3DRender::QLayer *layer) { - m_screenQuadFilter->setLayers(layerNames); + m_screenQuadFilter->addLayer(layer); } diff --git a/examples/qt3d/deferred-renderer-cpp/deferredrenderer.h b/examples/qt3d/deferred-renderer-cpp/deferredrenderer.h index fa716ee7d..85044838a 100644 --- a/examples/qt3d/deferred-renderer-cpp/deferredrenderer.h +++ b/examples/qt3d/deferred-renderer-cpp/deferredrenderer.h @@ -69,8 +69,8 @@ public: void setGBuffer(Qt3DRender::QRenderTarget *gBuffer); void setGeometryPassCriteria(QList criteria); void setFinalPassCriteria(QList criteria); - void setGBufferLayers(const QStringList &layerName); - void setScreenQuadLayers(const QStringList &layerName); + void setGBufferLayer(Qt3DRender::QLayer *layer); + void setScreenQuadLayer(Qt3DRender::QLayer *layer); private: Qt3DRender::QRenderSurfaceSelector *m_surfaceSelector; diff --git a/examples/qt3d/deferred-renderer-cpp/main.cpp b/examples/qt3d/deferred-renderer-cpp/main.cpp index be8a5f403..53caaaae5 100644 --- a/examples/qt3d/deferred-renderer-cpp/main.cpp +++ b/examples/qt3d/deferred-renderer-cpp/main.cpp @@ -92,10 +92,7 @@ int main(int ac, char **av) sphereMesh->setSlices(100); Qt3DRender::QLayer *sceneLayer = new Qt3DRender::QLayer(); - sceneLayer->setNames(QStringList("scene")); - Qt3DRender::QLayer *quadLayer = new Qt3DRender::QLayer(); - quadLayer->setNames(QStringList("screenQuad")); Qt3DExtras::QPlaneMesh *planeMesh = new Qt3DExtras::QPlaneMesh(); planeMesh->setMeshResolution(QSize(2, 2)); @@ -131,8 +128,8 @@ int main(int ac, char **av) deferredRenderer->setGeometryPassCriteria(sceneEffect->passCriteria()); deferredRenderer->setGBuffer(gBuffer); deferredRenderer->setSceneCamera(camera); - deferredRenderer->setGBufferLayers(sceneLayer->names()); - deferredRenderer->setScreenQuadLayers(quadLayer->names()); + deferredRenderer->setGBufferLayer(sceneLayer); + deferredRenderer->setScreenQuadLayer(quadLayer); view.setActiveFrameGraph(deferredRenderer); // Scene Content diff --git a/examples/qt3d/wave/Background.qml b/examples/qt3d/wave/Background.qml index 8b81770b9..6937026d6 100644 --- a/examples/qt3d/wave/Background.qml +++ b/examples/qt3d/wave/Background.qml @@ -57,6 +57,7 @@ Entity { id: root property real hue: 0.0 property alias animateColors: hueAnim.running + property Layer layer: null QQ2.NumberAnimation { id: hueAnim @@ -74,29 +75,27 @@ Entity { property color color2: Qt.hsla( (hue + 0.59) % 1, 1.0, 0.15 ) } - components: [ - Layer { - names: "background" - }, + components: [ layer, mesh, transform, material ] - PlaneMesh { - width: 2.0 - height: 2.0 - meshResolution: Qt.size( 2, 2 ) - }, - - Transform { - // Rotate the plane so that it faces us - rotation: fromAxisAndAngle(Qt.vector3d(1, 0, 0), 90) - }, + PlaneMesh { + id: mesh + width: 2.0 + height: 2.0 + meshResolution: Qt.size( 2, 2 ) + } - Material { - effect: BackgroundEffect {} - parameters: [ - Parameter { name: "color1"; value: Qt.vector3d( _private.color1.r, _private.color1.g, _private.color1.b ) }, - Parameter { name: "color2"; value: Qt.vector3d( _private.color2.r, _private.color2.g, _private.color2.b ) } - ] - } - ] + Transform { + id: transform + // Rotate the plane so that it faces us + rotation: fromAxisAndAngle(Qt.vector3d(1, 0, 0), 90) + } + Material { + id: material + effect: BackgroundEffect {} + parameters: [ + Parameter { name: "color1"; value: Qt.vector3d( _private.color1.r, _private.color1.g, _private.color1.b ) }, + Parameter { name: "color2"; value: Qt.vector3d( _private.color2.r, _private.color2.g, _private.color2.b ) } + ] + } } diff --git a/examples/qt3d/wave/Wave.qml b/examples/qt3d/wave/Wave.qml index a4728e5a9..107502897 100644 --- a/examples/qt3d/wave/Wave.qml +++ b/examples/qt3d/wave/Wave.qml @@ -64,14 +64,10 @@ Entity { property color tint: Qt.rgba( 0.0, 0.0, 0.0, 1.0 ) property real intensity: 0.3 property alias wireframe: material.wireframe + property Layer layer: null components: [ transform, mesh, material, layer ] - Layer { - id: layer - names: "wave" - } - Transform { id: transform translation: Qt.vector3d(root.x, root.y, root.z); diff --git a/examples/qt3d/wave/WaveForwardRenderer.qml b/examples/qt3d/wave/WaveForwardRenderer.qml index 280266331..48397243e 100644 --- a/examples/qt3d/wave/WaveForwardRenderer.qml +++ b/examples/qt3d/wave/WaveForwardRenderer.qml @@ -58,6 +58,10 @@ TechniqueFilter { property alias camera: cameraSelector.camera property alias window: surfaceSelector.surface + // Expose the layers we'll manage during rendering + readonly property Layer backgroundLayer: Layer {} + readonly property Layer waveLayer: Layer {} + // Select the forward rendering Technique of any used Effect matchAll: [ FilterKey { name: "renderingStyle"; value: "forward" } ] @@ -75,10 +79,10 @@ TechniqueFilter { ClearBuffers { buffers: ClearBuffers.ColorDepthBuffer - LayerFilter { layers: "background" } + LayerFilter { layers: root.backgroundLayer } } - LayerFilter { layers: "wave" } + LayerFilter { layers: root.waveLayer } } } } diff --git a/examples/qt3d/wave/main.qml b/examples/qt3d/wave/main.qml index 7d86d516b..bfe75c2a1 100644 --- a/examples/qt3d/wave/main.qml +++ b/examples/qt3d/wave/main.qml @@ -94,9 +94,11 @@ Entity { Background { id: background + layer: renderSettings.activeFrameGraph.backgroundLayer } Wave { id: wave + layer: renderSettings.activeFrameGraph.waveLayer } } -- cgit v1.2.3