diff options
author | Paul Lemire <paul.lemire@kdab.com> | 2016-02-25 15:09:03 +0100 |
---|---|---|
committer | Paul Lemire <paul.lemire@kdab.com> | 2016-02-26 09:45:12 +0000 |
commit | 7e2f9d42eebe13182918d832577c4f5ed96ab87b (patch) | |
tree | cee2c929e6a1fe365d3a290067fe0ab935069162 /tests | |
parent | 473fb46f44d4225675c5d903501a7cb9ee6b8258 (diff) |
Remove ParameterMapping
* Bindings are now entirely deduced from shader introspection
* Modified the BackendNodeDirtyFlags to remove the class at this
prevents the operator~() to be called
* Make the Renderer loop check for the ComputeDirty flag and
don't unset it if set
Note: uses a hack to reset m_changeSet in performCompute as right know
we are sometimes missing the markDirty(ComputeDirty) set by the ComputeJob nodes.
Will be sorted out later.
Change-Id: Ic4fa71ecf01b625e885a58a66278387bf5b36339
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Diffstat (limited to 'tests')
-rw-r--r-- | tests/auto/render/commons/testrenderer.cpp | 9 | ||||
-rw-r--r-- | tests/auto/render/commons/testrenderer.h | 7 | ||||
-rw-r--r-- | tests/auto/render/qmaterial/tst_qmaterial.cpp | 18 | ||||
-rw-r--r-- | tests/auto/render/renderpass/tst_renderpass.cpp | 43 |
4 files changed, 11 insertions, 66 deletions
diff --git a/tests/auto/render/commons/testrenderer.cpp b/tests/auto/render/commons/testrenderer.cpp index 39cf936ac..db038dbc4 100644 --- a/tests/auto/render/commons/testrenderer.cpp +++ b/tests/auto/render/commons/testrenderer.cpp @@ -39,17 +39,22 @@ TestRenderer::~TestRenderer() { } -void TestRenderer::markDirty(Qt3DRender::Render::BackendNodeDirtySet changes, Qt3DRender::Render::BackendNode *node) +void TestRenderer::markDirty(Qt3DRender::Render::AbstractRenderer::BackendNodeDirtySet changes, Qt3DRender::Render::BackendNode *node) { Q_UNUSED(node); m_changes |= changes; } -Qt3DRender::Render::BackendNodeDirtySet TestRenderer::dirtyBits() +Qt3DRender::Render::AbstractRenderer::BackendNodeDirtySet TestRenderer::dirtyBits() { return m_changes; } +void TestRenderer::clearDirtyBits(Qt3DRender::Render::AbstractRenderer::BackendNodeDirtySet changes) +{ + m_changes &= changes; +} + void TestRenderer::resetDirty() { m_changes = 0; diff --git a/tests/auto/render/commons/testrenderer.h b/tests/auto/render/commons/testrenderer.h index d237b6051..1194e6c38 100644 --- a/tests/auto/render/commons/testrenderer.h +++ b/tests/auto/render/commons/testrenderer.h @@ -67,13 +67,14 @@ public: void setSettings(Qt3DRender::Render::RendererSettings *settings) Q_DECL_OVERRIDE { Q_UNUSED(settings); } Qt3DRender::Render::RendererSettings *settings() const Q_DECL_OVERRIDE { return Q_NULLPTR; } - void markDirty(Qt3DRender::Render::BackendNodeDirtySet changes, Qt3DRender::Render::BackendNode *node) Q_DECL_OVERRIDE; - Qt3DRender::Render::BackendNodeDirtySet dirtyBits() Q_DECL_OVERRIDE; + void markDirty(Qt3DRender::Render::AbstractRenderer::BackendNodeDirtySet changes, Qt3DRender::Render::BackendNode *node) Q_DECL_OVERRIDE; + Qt3DRender::Render::AbstractRenderer::BackendNodeDirtySet dirtyBits() Q_DECL_OVERRIDE; + void clearDirtyBits(Qt3DRender::Render::AbstractRenderer::BackendNodeDirtySet changes) Q_DECL_OVERRIDE; void resetDirty(); protected: - Qt3DRender::Render::BackendNodeDirtySet m_changes; + Qt3DRender::Render::AbstractRenderer::BackendNodeDirtySet m_changes; }; QT_END_NAMESPACE diff --git a/tests/auto/render/qmaterial/tst_qmaterial.cpp b/tests/auto/render/qmaterial/tst_qmaterial.cpp index 3b6171030..7b52a798c 100644 --- a/tests/auto/render/qmaterial/tst_qmaterial.cpp +++ b/tests/auto/render/qmaterial/tst_qmaterial.cpp @@ -36,7 +36,6 @@ #include <Qt3DRender/QTechnique> #include <Qt3DRender/QRenderPass> #include <Qt3DRender/QPhongMaterial> -#include <Qt3DRender/QParameterMapping> #include <Qt3DRender/QDiffuseMapMaterial> #include <Qt3DRender/QPerVertexColorMaterial> #include <Qt3DRender/QNormalDiffuseMapMaterial> @@ -131,7 +130,6 @@ private: compareParameters(original->parameters(), clone->parameters()); compareRenderStates(original->renderStates(), clone->renderStates()); compareAnnotations(original->annotations(), clone->annotations()); - compareBindings(original->bindings(), clone->bindings()); compareShaderPrograms(original->shaderProgram(), clone->shaderProgram()); } @@ -162,22 +160,6 @@ private: } } - void compareBindings(const QList<Qt3DRender::QParameterMapping *> &original, const QList<Qt3DRender::QParameterMapping *> &clone) - { - const int bindingsCount = original.size(); - QCOMPARE(bindingsCount, clone.size()); - - for (int i = 0; i < bindingsCount; ++i) { - const Qt3DRender::QParameterMapping *origMapping = original.at(i); - const Qt3DRender::QParameterMapping *cloneMapping = clone.at(i); - - QCOMPARE(origMapping->id(), cloneMapping->id()); - QCOMPARE(origMapping->bindingType(), cloneMapping->bindingType()); - QCOMPARE(origMapping->parameterName(), cloneMapping->parameterName()); - QCOMPARE(origMapping->shaderVariableName(), cloneMapping->shaderVariableName()); - } - } - void compareRenderStates(const QList<Qt3DRender::QRenderState *> &original, const QList<Qt3DRender::QRenderState *> &clone) { const int renderStatesCount = original.size(); diff --git a/tests/auto/render/renderpass/tst_renderpass.cpp b/tests/auto/render/renderpass/tst_renderpass.cpp index 603cfb2a2..390946042 100644 --- a/tests/auto/render/renderpass/tst_renderpass.cpp +++ b/tests/auto/render/renderpass/tst_renderpass.cpp @@ -32,7 +32,6 @@ #include <Qt3DCore/QScenePropertyChange> #include <Qt3DRender/QAnnotation> -#include <Qt3DRender/QParameterMapping> #include <Qt3DRender/QRenderPass> #include <Qt3DRender/QShaderProgram> #include <Qt3DRender/QParameter> @@ -84,7 +83,6 @@ private slots: // THEN QVERIFY(backend.shaderProgram().isNull()); QVERIFY(backend.annotations().isEmpty()); - QVERIFY(backend.bindings().isEmpty()); QVERIFY(backend.renderStates(m_renderStateManager).isEmpty()); QVERIFY(backend.parameters().isEmpty()); } @@ -97,8 +95,6 @@ private slots: frontend.addAnnotation(new QAnnotation(&frontend)); - frontend.addBinding(new QParameterMapping(&frontend)); - frontend.addParameter(new QParameter(&frontend)); QRenderState *frontendState = new QBlendState(); @@ -119,12 +115,6 @@ private slots: QCOMPARE(backend.annotations().size(), 1); QCOMPARE(backend.annotations().first(), frontend.annotations().first()->id()); - QCOMPARE(backend.bindings().size(), 1); - QCOMPARE(backend.bindings().first().id(), frontend.bindings().first()->id()); - QCOMPARE(backend.bindings().first().bindingType(), frontend.bindings().first()->bindingType()); - QCOMPARE(backend.bindings().first().parameterName(), frontend.bindings().first()->parameterName()); - QCOMPARE(backend.bindings().first().shaderVariableName(), frontend.bindings().first()->shaderVariableName()); - QCOMPARE(backend.parameters().size(), 1); QCOMPARE(backend.parameters().first(), frontend.parameters().first()->id()); @@ -191,39 +181,6 @@ private slots: QVERIFY(backend.annotations().isEmpty()); } - void shouldHandleBindingsPropertyChangeEvents() - { - // GIVEN - QScopedPointer<QParameterMapping> binding(new QParameterMapping); - - RenderPass backend; - TestRenderer renderer; - backend.setRenderer(&renderer); - - // WHEN - QScenePropertyChangePtr addChange(new QScenePropertyChange(NodeAdded, QSceneChange::Node, binding->id())); - addChange->setValue(QVariant::fromValue(binding.data())); - addChange->setPropertyName("binding"); - backend.sceneChangeEvent(addChange); - - // THEN - QCOMPARE(backend.bindings().size(), 1); - QCOMPARE(backend.bindings().first().id(), binding->id()); - QCOMPARE(backend.bindings().first().bindingType(), binding->bindingType()); - QCOMPARE(backend.bindings().first().parameterName(), binding->parameterName()); - QCOMPARE(backend.bindings().first().shaderVariableName(), binding->shaderVariableName()); - QVERIFY(renderer.dirtyBits() != 0); - - // WHEN - QScenePropertyChangePtr removeChange(new QScenePropertyChange(NodeRemoved, QSceneChange::Node, binding->id())); - removeChange->setValue(QVariant::fromValue(binding->id())); - removeChange->setPropertyName("binding"); - backend.sceneChangeEvent(removeChange); - - // THEN - QVERIFY(backend.bindings().isEmpty()); - } - void shouldHandleParametersPropertyChangeEvents() { // GIVEN |