diff options
author | Sean Harmer <sean.harmer@kdab.com> | 2017-08-03 15:58:38 +0100 |
---|---|---|
committer | Sean Harmer <sean.harmer@kdab.com> | 2017-08-10 10:41:20 +0000 |
commit | a3e323ff404d4b77fabffaa22d19afb09297344d (patch) | |
tree | 65d24be0b586db558c24c9f9bc5ad852a2cda358 /tests | |
parent | 4574b9e2c5c355374071ed67c3e380f9f370d6bb (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.cpp | 8 | ||||
-rw-r--r-- | tests/auto/render/renderviewbuilder/tst_renderviewbuilder.cpp | 2 | ||||
-rw-r--r-- | tests/auto/render/uniform/tst_uniform.cpp | 45 |
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]); + } + } }; |