summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorSean Harmer <sean.harmer@kdab.com>2017-08-03 15:58:38 +0100
committerSean Harmer <sean.harmer@kdab.com>2017-08-10 10:41:20 +0000
commita3e323ff404d4b77fabffaa22d19afb09297344d (patch)
tree65d24be0b586db558c24c9f9bc5ad852a2cda358 /tests
parent4574b9e2c5c355374071ed67c3e380f9f370d6bb (diff)
Add a job to calculate the skinning matrix palette for a skeleton
Change-Id: Id70f17592935543053137a37b70b6c2f8b7000ed Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
Diffstat (limited to 'tests')
-rw-r--r--tests/auto/render/renderer/tst_renderer.cpp8
-rw-r--r--tests/auto/render/renderviewbuilder/tst_renderviewbuilder.cpp2
-rw-r--r--tests/auto/render/uniform/tst_uniform.cpp45
3 files changed, 54 insertions, 1 deletions
diff --git a/tests/auto/render/renderer/tst_renderer.cpp b/tests/auto/render/renderer/tst_renderer.cpp
index 7265c816e..78a552854 100644
--- a/tests/auto/render/renderer/tst_renderer.cpp
+++ b/tests/auto/render/renderer/tst_renderer.cpp
@@ -85,6 +85,7 @@ private Q_SLOTS:
1 + // sendBufferCaptureJob
1 + // filterCompatibleTechniquesJob
1 + // VAOGatherer
+ 1 + // updateSkinningPaletteJob
singleRenderViewJobCount); // Only valid for the first call to renderBinJobs(), since subsequent calls won't have the renderqueue reset
@@ -100,6 +101,7 @@ private Q_SLOTS:
1 + // sendBufferCaptureJob
1 + // filterCompatibleTechniquesJob
1 + // VAOGatherer
+ 1 + // updateSkinningPaletteJob
1); // EntityEnabledDirty
renderer.clearDirtyBits(Qt3DRender::Render::AbstractRenderer::AllDirty);
@@ -119,6 +121,7 @@ private Q_SLOTS:
1 + // WorldTransformJob
1 + // UpdateWorldBoundingVolume
1 + // UpdateShaderDataTransform
+ 1 + // updateSkinningPaletteJob
1); // ExpandBoundingVolumeJob
renderer.clearDirtyBits(Qt3DRender::Render::AbstractRenderer::AllDirty);
@@ -137,6 +140,7 @@ private Q_SLOTS:
1 + // VAOGatherer
1 + // CalculateBoundingVolumeJob
1 + // UpdateMeshTriangleListJob
+ 1 + // updateSkinningPaletteJob
1); // ExpandBoundingVolumeJob
renderer.clearDirtyBits(Qt3DRender::Render::AbstractRenderer::AllDirty);
@@ -153,6 +157,7 @@ private Q_SLOTS:
1 + // sendBufferCaptureJob
1 + // filterCompatibleTechniquesJob
1 + // VAOGatherer
+ 1 + // updateSkinningPaletteJob
1); // BufferGathererJob
renderer.clearDirtyBits(Qt3DRender::Render::AbstractRenderer::AllDirty);
@@ -169,6 +174,7 @@ private Q_SLOTS:
1 + // sendBufferCaptureJob
1 + // filterCompatibleTechniquesJob
1 + // VAOGatherer
+ 1 + // updateSkinningPaletteJob
1); // ShaderGathererJob
renderer.clearDirtyBits(Qt3DRender::Render::AbstractRenderer::AllDirty);
@@ -186,6 +192,7 @@ private Q_SLOTS:
1 + // filterCompatibleTechniquesJob
1 + // VAOGatherer
1 + // TexturesGathererJob
+ 1 + // updateSkinningPaletteJob
1); // SyncTexturesGathererJob
renderer.clearDirtyBits(Qt3DRender::Render::AbstractRenderer::AllDirty);
@@ -212,6 +219,7 @@ private Q_SLOTS:
1 + // BufferGathererJob
1 + // ShaderGathererJob
1 + // TexturesGathererJob
+ 1 + // updateSkinningPaletteJob
1); // SyncTexturesGathererJob
renderer.clearDirtyBits(Qt3DRender::Render::AbstractRenderer::AllDirty);
diff --git a/tests/auto/render/renderviewbuilder/tst_renderviewbuilder.cpp b/tests/auto/render/renderviewbuilder/tst_renderviewbuilder.cpp
index 1ab687b34..1f2f304df 100644
--- a/tests/auto/render/renderviewbuilder/tst_renderviewbuilder.cpp
+++ b/tests/auto/render/renderviewbuilder/tst_renderviewbuilder.cpp
@@ -219,7 +219,7 @@ private Q_SLOTS:
// THEN
// Step 1
- QCOMPARE(renderViewBuilder.renderViewJob()->dependencies().size(), 0);
+ QCOMPARE(renderViewBuilder.renderViewJob()->dependencies().size(), 1); // Depends upon skinning palette update
QCOMPARE(renderViewBuilder.lightGathererJob()->dependencies().size(), 0);
QCOMPARE(renderViewBuilder.renderableEntityFilterJob()->dependencies().size(),0);
QCOMPARE(renderViewBuilder.computableEntityFilterJob()->dependencies().size(), 0);
diff --git a/tests/auto/render/uniform/tst_uniform.cpp b/tests/auto/render/uniform/tst_uniform.cpp
index 29a8b2e4c..b8578b294 100644
--- a/tests/auto/render/uniform/tst_uniform.cpp
+++ b/tests/auto/render/uniform/tst_uniform.cpp
@@ -365,6 +365,51 @@ private Q_SLOTS:
QVERIFY(!(v1 == v2));
QVERIFY(v1 != v2);
}
+
+ void checkSetData()
+ {
+ // GIVEN
+ const QMatrix4x4 m1;
+ QMatrix4x4 m2;
+ m2.rotate(90.0f, 1.0f, 0.0f, 0.0f);
+ QMatrix4x4 m3;
+ m3.scale(2.5f);
+ QMatrix4x4 m4;
+ m4.translate(1.0f, 2.0f, 3.0f);
+
+ const QVector<QMatrix4x4> matrices1 = (QVector<QMatrix4x4>() << m1 << m2 << m3 << m4);
+ UniformValue v(matrices1);
+
+ // WHEN
+ const QVector<QMatrix4x4> matrices2 = (QVector<QMatrix4x4>() << m4 << m3 << m2 << m1 << m4);
+ v.setData(matrices2);
+
+ // THEN
+ for (int j = 0; j < matrices2.size(); ++j) {
+ for (int i = 0; i < 16; ++i) {
+ QCOMPARE(v.constData<float>()[16 * j + i], matrices2[j].constData()[i]);
+ }
+ }
+
+ // GIVEN
+ const int positionCount = 10;
+ QVector<QVector3D> positions(positionCount);
+ for (int i = 0; i < positionCount; ++i) {
+ const QVector3D p(float(i), 10.0f * i, 100.0f * i);
+ positions[i] = p;
+ }
+
+ UniformValue positionsUniform;
+
+ // WHEN
+ positionsUniform.setData(positions);
+
+ // THEN
+ const QVector3D *data = positionsUniform.constData<QVector3D>();
+ for (int i = 0; i < positionCount; ++i) {
+ QCOMPARE(*(data + i), positions[i]);
+ }
+ }
};