#include #include #include #include SCENARIO("RenderTechniques", "[GRAPHICS][RENDERTECHNIQUES]") { GIVEN("Nothing") { WHEN("We try to get a technique") { THEN("We should get it") { std::unique_ptr forwardByEnum(Nz::RenderTechniques::GetByEnum(Nz::RenderTechniqueType_BasicForward)); REQUIRE(forwardByEnum->GetType() == Nz::RenderTechniqueType_BasicForward); std::unique_ptr forwardByIndex(Nz::RenderTechniques::GetByIndex(1)); REQUIRE(forwardByIndex->GetType() == Nz::RenderTechniqueType_BasicForward); std::unique_ptr forwardByName(Nz::RenderTechniques::GetByName(Nz::RenderTechniques::ToString(Nz::RenderTechniqueType_BasicForward))); REQUIRE(forwardByName->GetType() == Nz::RenderTechniqueType_BasicForward); } THEN("We can register a render technique") { unsigned int previousCount = Nz::RenderTechniques::GetCount(); Nz::RenderTechniques::Register("test", 23, []() -> Nz::AbstractRenderTechnique* { return new Nz::ForwardRenderTechnique; }); REQUIRE(previousCount < Nz::RenderTechniques::GetCount()); std::unique_ptr forwardByRanking(Nz::RenderTechniques::GetByRanking(23)); REQUIRE(forwardByRanking->GetType() == Nz::RenderTechniqueType_BasicForward); std::unique_ptr forwardByName(Nz::RenderTechniques::GetByName("test")); REQUIRE(forwardByName->GetType() == Nz::RenderTechniqueType_BasicForward); Nz::RenderTechniques::Unregister("test"); REQUIRE(previousCount == Nz::RenderTechniques::GetCount()); } } } }