summaryrefslogtreecommitdiffstats
path: root/tests/auto/render/renderpass/tst_renderpass.cpp
diff options
context:
space:
mode:
authorMike Krus <mike.krus@kdab.com>2019-09-06 21:06:26 +0100
committerPaul Lemire <paul.lemire@kdab.com>2019-09-19 13:42:35 +0200
commitf88fa485e3ebfeaefa7aa7e5f277e47fd0ed12b5 (patch)
treeef30c8b71bf7beee370801a877ae2a4f22d8d953 /tests/auto/render/renderpass/tst_renderpass.cpp
parent56785807dc5aec77506ea02174fd46a67de57b5f (diff)
Update QRenderPass to use direct sync
Change-Id: Ie64d8cd74c8b28c43644f63993f0419ecb511d0e Reviewed-by: Mike Krus <mike.krus@kdab.com>
Diffstat (limited to 'tests/auto/render/renderpass/tst_renderpass.cpp')
-rw-r--r--tests/auto/render/renderpass/tst_renderpass.cpp89
1 files changed, 40 insertions, 49 deletions
diff --git a/tests/auto/render/renderpass/tst_renderpass.cpp b/tests/auto/render/renderpass/tst_renderpass.cpp
index a4a2762ba..7be741936 100644
--- a/tests/auto/render/renderpass/tst_renderpass.cpp
+++ b/tests/auto/render/renderpass/tst_renderpass.cpp
@@ -70,6 +70,7 @@ using namespace Qt3DRender::Render;
class tst_RenderRenderPass : public Qt3DCore::QBackendNodeTester
{
Q_OBJECT
+
public:
tst_RenderRenderPass()
: m_renderStateManager(new RenderStateManager())
@@ -96,6 +97,8 @@ private slots:
{
// GIVEN
RenderPass backend;
+ TestRenderer renderer;
+ backend.setRenderer(&renderer);
// WHEN
backend.setEnabled(true);
@@ -112,7 +115,7 @@ private slots:
frontend.addRenderState(&state);
frontend.setShaderProgram(&program);
- simulateInitialization(&frontend, &backend);
+ simulateInitializationSync(&frontend, &backend);
}
backend.cleanup();
@@ -141,12 +144,14 @@ private slots:
frontend.addRenderState(frontendState);
RenderPass backend;
+ TestRenderer renderer;
+ backend.setRenderer(&renderer);
RenderStateNode *backendState = m_renderStateManager->getOrCreateResource(frontendState->id());
- simulateInitialization(frontendState, backendState);
+ simulateInitializationSync(frontendState, backendState);
// WHEN
- simulateInitialization(&frontend, &backend);
+ simulateInitializationSync(&frontend, &backend);
// THEN
QCOMPARE(backend.shaderProgram(), frontend.shaderProgram()->id());
@@ -165,25 +170,26 @@ private slots:
void shouldHandleShaderPropertyChangeEvents()
{
// GIVEN
- QScopedPointer<QShaderProgram> shader(new QShaderProgram);
+ QShaderProgram *shader = new QShaderProgram;
RenderPass backend;
TestRenderer renderer;
backend.setRenderer(&renderer);
+ QRenderPass frontend;
+ simulateInitializationSync(&frontend, &backend);
+
// WHEN
- const auto addChange = Qt3DCore::QPropertyNodeAddedChangePtr::create(Qt3DCore::QNodeId(), shader.data());
- addChange->setPropertyName("shaderProgram");
- backend.sceneChangeEvent(addChange);
+ frontend.setShaderProgram(shader);
+ backend.syncFromFrontEnd(&frontend, false);
// THEN
QCOMPARE(backend.shaderProgram(), shader->id());
QVERIFY(renderer.dirtyBits() != 0);
// WHEN
- const auto removeChange = Qt3DCore::QPropertyNodeRemovedChangePtr::create(Qt3DCore::QNodeId(), shader.data());
- removeChange->setPropertyName("shaderProgram");
- backend.sceneChangeEvent(removeChange);
+ frontend.setShaderProgram(nullptr);
+ backend.syncFromFrontEnd(&frontend, false);
// THEN
QVERIFY(backend.shaderProgram().isNull());
@@ -192,16 +198,18 @@ private slots:
void shouldHandleAnnotationsPropertyChangeEvents()
{
// GIVEN
- QScopedPointer<QFilterKey> annotation(new QFilterKey);
+ QFilterKey *annotation = new QFilterKey;
RenderPass backend;
TestRenderer renderer;
backend.setRenderer(&renderer);
+ QRenderPass frontend;
+ simulateInitializationSync(&frontend, &backend);
+
// WHEN
- const auto addChange = Qt3DCore::QPropertyNodeAddedChangePtr::create(Qt3DCore::QNodeId(), annotation.data());
- addChange->setPropertyName("filterKeys");
- backend.sceneChangeEvent(addChange);
+ frontend.addFilterKey(annotation);
+ backend.syncFromFrontEnd(&frontend, false);
// THEN
QCOMPARE(backend.filterKeys().size(), 1);
@@ -209,9 +217,8 @@ private slots:
QVERIFY(renderer.dirtyBits() != 0);
// WHEN
- const auto removeChange = Qt3DCore::QPropertyNodeRemovedChangePtr::create(Qt3DCore::QNodeId(), annotation.data());
- removeChange->setPropertyName("filterKeys");
- backend.sceneChangeEvent(removeChange);
+ frontend.removeFilterKey(annotation);
+ backend.syncFromFrontEnd(&frontend, false);
// THEN
QVERIFY(backend.filterKeys().isEmpty());
@@ -220,16 +227,18 @@ private slots:
void shouldHandleParametersPropertyChangeEvents()
{
// GIVEN
- QScopedPointer<QParameter> parameter(new QParameter);
+ QParameter *parameter = new QParameter;
RenderPass backend;
TestRenderer renderer;
backend.setRenderer(&renderer);
+ QRenderPass frontend;
+ simulateInitializationSync(&frontend, &backend);
+
// WHEN
- const auto addChange = Qt3DCore::QPropertyNodeAddedChangePtr::create(Qt3DCore::QNodeId(), parameter.data());
- addChange->setPropertyName("parameter");
- backend.sceneChangeEvent(addChange);
+ frontend.addParameter(parameter);
+ backend.syncFromFrontEnd(&frontend, false);
// THEN
QCOMPARE(backend.parameters().size(), 1);
@@ -237,9 +246,8 @@ private slots:
QVERIFY(renderer.dirtyBits() != 0);
// WHEN
- const auto removeChange = Qt3DCore::QPropertyNodeRemovedChangePtr::create(Qt3DCore::QNodeId(), parameter.data());
- removeChange->setPropertyName("parameter");
- backend.sceneChangeEvent(removeChange);
+ frontend.removeParameter(parameter);
+ backend.syncFromFrontEnd(&frontend, false);
// THEN
QVERIFY(backend.parameters().isEmpty());
@@ -254,12 +262,14 @@ private slots:
backend.setRenderer(&renderer);
RenderStateNode *backendState = m_renderStateManager->getOrCreateResource(frontendState->id());
- simulateInitialization(frontendState, backendState);
+ simulateInitializationSync(frontendState, backendState);
+
+ QRenderPass frontend;
+ simulateInitializationSync(&frontend, &backend);
// WHEN
- const auto addChange = Qt3DCore::QPropertyNodeAddedChangePtr::create(Qt3DCore::QNodeId(), frontendState);
- addChange->setPropertyName("renderState");
- backend.sceneChangeEvent(addChange);
+ frontend.addRenderState(frontendState);
+ backend.syncFromFrontEnd(&frontend, false);
// THEN
QCOMPARE(backend.renderStates().size(), 1);
@@ -267,32 +277,13 @@ private slots:
QVERIFY(renderer.dirtyBits() != 0);
// WHEN
- const auto removeChange = Qt3DCore::QPropertyNodeRemovedChangePtr::create(Qt3DCore::QNodeId(), frontendState);
- removeChange->setPropertyName("renderState");
- backend.sceneChangeEvent(removeChange);
+ frontend.removeRenderState(frontendState);
+ backend.syncFromFrontEnd(&frontend, false);
// THEN
QVERIFY(backend.renderStates().isEmpty());
}
- void shouldHandleShaderProgramPropertyChangeEvents()
- {
- // GIVEN
- RenderPass backend;
- TestRenderer renderer;
- backend.setRenderer(&renderer);
-
- // WHEN
- Qt3DCore::QNodeId shaderId = Qt3DCore::QNodeId::createId();
- const auto shaderChange = Qt3DCore::QPropertyUpdatedChangePtr::create(Qt3DCore::QNodeId());
- shaderChange->setPropertyName("shaderProgram");
- shaderChange->setValue(QVariant::fromValue(shaderId));
- backend.sceneChangeEvent(shaderChange);
-
- // THEN
- QCOMPARE(backend.shaderProgram(), shaderId);
- }
-
private:
RenderStateManager *m_renderStateManager;
};