From 7c2977ee4de2cfd967871a0927443f24361944b1 Mon Sep 17 00:00:00 2001 From: Dan Goodliffe Date: Fri, 14 Apr 2023 17:07:40 +0100 Subject: Use asset factory models in test-render --- test/Jamfile.jam | 6 +++--- test/test-render.cpp | 24 +++++++++++++++++++----- 2 files changed, 22 insertions(+), 8 deletions(-) diff --git a/test/Jamfile.jam b/test/Jamfile.jam index 482b388..d91af1d 100644 --- a/test/Jamfile.jam +++ b/test/Jamfile.jam @@ -52,11 +52,11 @@ run test-network.cpp ; run test-persistence.cpp : -- : [ sequence.insertion-sort [ glob-tree fixtures : *.json ] ] : test ; run test-text.cpp ; run test-enumDetails.cpp ; -run test-render.cpp : : : test ; +run test-render.cpp : -- : test-assetFactory : test ; run test-glContextBhvr.cpp ; run test-assetFactory.cpp : -- : [ sequence.insertion-sort [ glob-tree $(res) : *.* ] fixtures/rgb.txt ] : test ; -run perf-assetFactory.cpp : : : benchmark test test-assetFactory ; -run perf-persistence.cpp : : : benchmark test test-persistence ; +run perf-assetFactory.cpp : -- : test-assetFactory : benchmark test ; +run perf-persistence.cpp : -- : test-persistence : benchmark test ; run test-worker.cpp ; compile test-static-enumDetails.cpp ; compile test-static-stream_support.cpp ; diff --git a/test/test-render.cpp b/test/test-render.cpp index 8c6b31c..45acab5 100644 --- a/test/test-render.cpp +++ b/test/test-render.cpp @@ -6,8 +6,10 @@ #include #include +#include #include #include +#include #include #include #include @@ -19,18 +21,30 @@ #include class TestScene : public SceneProvider { - RailVehicleClass train {"brush47"}; + std::shared_ptr train1, train2; + Terrain terrain {[]() { auto gd = std::make_shared(GeoData::Limits {{0, 0}, {100, 100}}); gd->generateRandom(); return gd; }()}; + +public: + TestScene() + { + const auto assetFactory = AssetFactory::loadXML(RESDIR "/brush47.xml"); + const auto brush47rvc = std::dynamic_pointer_cast(assetFactory->assets.at("brush-47")); + train1 = std::make_shared(brush47rvc); + train1->location.pos = {52, 50, 2}; + train2 = std::make_shared(brush47rvc); + train2->location.pos = {52, 30, 2}; + } void content(const SceneShader & shader) const override { terrain.render(shader); - train.render(shader, Location {{52, 50, 2}}, {Location {{52, 56, 2}}, Location {{52, 44, 2}}}); - train.render(shader, Location {{52, 30, 2}}, {Location {{52, 36, 2}}, Location {{52, 24, 2}}}); + train1->render(shader); + train2->render(shader); } void lights(const SceneShader &) const override @@ -40,8 +54,8 @@ class TestScene : public SceneProvider { shadows(const ShadowMapper & shadowMapper) const override { terrain.shadows(shadowMapper); - train.shadows(shadowMapper, Location {{52, 50, 2}}, {Location {{52, 56, 2}}, Location {{52, 44, 2}}}); - train.shadows(shadowMapper, Location {{52, 30, 2}}, {Location {{52, 36, 2}}, Location {{52, 24, 2}}}); + train1->shadows(shadowMapper); + train2->shadows(shadowMapper); } }; -- cgit v1.2.3